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.
There are Pony packages for several popular editors.
- Emacs
- Sublime
- Vim
- Atom
- Visual Studio: VS pony
- Visual Studio Code: Pony Language Colorizer
- BBEdit
- CTags
There is currently no support for popular IDEs like Eclipse or IntelliJ.
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.
Pony programs are compiled into native code using ponyc
. The compiler is based on LLVM.
The recommended method for installing Pony on supported systems is to use ponyup
There are installation instructions for other systems.
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.
corral
is the recommended dependency manager. It replaces stable
, the old dependency manager.
The Pony community communicates primarily through Zulip. There is also a @ponylang Twitter account.
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.
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.
Pony supports package- and class-level doc strings. The compiler can then use these to generate documentation. The standard library documentation uses this system.
The main resource for learning Pony is the Pony Tutorial.
'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.