Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Information about Pony based on the items outlined in https://twitter.com/casio_juarez/status/898706225642086400

Pony Considerations

If you're thinking of checking out the Pony programming language, here's a list of things that I think are important to know. This list is based on a Tweet that I wrote.

Editor/IDE support

There are Pony packages for several popular editors.

There is currently no support for popular IDEs like Eclipse or IntelliJ.

Build Tools

The Pony compiler can handle all of the work of building and linking Pony programs. If anything more complex is needed the most common solution is to use a Makefile. There's a Gradle plugin as well.

Compiler/Runtime

Pony programs are compiled into native code using ponyc. The compiler is based on LLVM.

If you are on a Mac using Homebrew you can install it with brew install ponyc. If you are on Ubuntu you can use

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "D401AB61 DBE1D0A2"
echo "deb https://dl.bintray.com/pony-language/ponyc-debian pony-language main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get -V install ponyc

There are installation instructions for other systems in the README.

Debugging

The Pony compiler can create a debug build of a program that works with lldb (it also works with gdb, but that has been less tested). Here's the Pony LLDB Cheatsheet. You can set breakpoints and inspect variables. The pony-lldb extension makes it a little easier to inspect things like strings and arrays.

Package Management

There's a project called stable that can be used to download packages and manage dependencies.

If you are on a Mac using Homebrew you can install it with brew install pony-stable. If you are on Ubuntu you can use

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "D401AB61 DBE1D0A2"
echo "deb https://dl.bintray.com/pony-language/pony-stable-debian /" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get -V install pony-stable

A replacement for stable called corral is being developed. It is currently alpha-level.

Community

The Pony community communicates primarily through Zulip. There is also a @ponylang Twitter account.

Testing

The standard library ships with a unit testing framework. It should look pretty familiar if you've used other unit testing frameworks. There are lots of unit tests for the standard library packages, so you can look at those as examples (here's the tests for the option parser).

There's also a property based testing system if you're into that kind of thing.

Project Organization

The Pony compiler is pretty flexible about where to find things. Packages are mapped on to directories, but files within those directories can contain any number of classes and can use any name that ends in .pony.

There's a project called Library Project Starter that can be used to set up a Pony project with some basic files for version control, CI, and documentation. The Pony Standard Library Style Guide includes recommendations for file naming.

Documentation

Pony supports package- and class-level doc strings. The compiler can then use these to generate documentation. The standard library documentation uses this system.

Learning

The main resource for learning Pony is the Pony Tutorial.

@dstarh

This comment has been minimized.

Copy link

dstarh commented Mar 19, 2018

The link to Ponlylang in the first paragraph is broken

@JeffreyBenjaminBrown

This comment has been minimized.

Copy link

JeffreyBenjaminBrown commented Mar 19, 2018

The first link on this page is dead. (Maybe others too, didn't check.)

@mattpodwysocki

This comment has been minimized.

Copy link

mattpodwysocki commented Mar 19, 2018

@aturley there is a Visual Studio Code plugin for Pony called the Pony Language Colorizer

@Arnavion

This comment has been minimized.

Copy link

Arnavion commented Mar 19, 2018

-* Visual Studio 
-  * [VS pony](https://github.com/ponylang/VS-pony)
-  * [Pony Language Colorizer](https://marketplace.visualstudio.com/items?itemName=npruehs.pony)
+* Visual Studio: [VS pony](https://github.com/ponylang/VS-pony)
+* Visual Studio Code: [Pony Language Colorizer](https://marketplace.visualstudio.com/items?itemName=npruehs.pony)
@donpdonp

This comment has been minimized.

Copy link

donpdonp commented Mar 20, 2018

'stable' is a cute bit of word-play but an unfortunate name for a pony software package. 'pony-stable' would mean the latest stable version of the pony language to almost anyone who is not already familitar with pony's package manager.

@mollymorphic

This comment has been minimized.

Copy link

mollymorphic commented Aug 16, 2018

Note at the time of this comment the instructions on how to add the keys to verify the package via apt-key fail on some version of Ubuntu/Debian. See description/fix here - ponylang/pony-stable#47

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.