Pony is an object-oriented, actor-model, capabilities-secure, high performance programming language.
Programming languages have been developed for over five decades and there are many of them. So, why Pony?
Developing high performance and scalable software systems has always been a very difficult task. With the introduction of multi-core processors, productivity using low-level languages such as C or C++ dramatically decreased. Substantial time had to be invested in debugging memory management related issues or data-race bugs. Manually synchronising concurrent memory accesses was an additional dimension programmers had to worry about, which ultimately distracted from the actual problem to be solved. Most importantly, the increase in performance, scalability and efficiency (if any) gained by programming for multiple cores was outweighed by the effort that had to be put in.
We believe that a programming language should be a high-level tool to express a problem to be solved by the computer. The runtime system should, with a little help and as unintrusively as possible, figure out how to map the program to the underlying hardware as efficiently as possible. The key is to have strong compile-time guarantees. Every single feature of Pony is designed to guarantee correctness and to improve speed as well as simplicity.
The result is an actor-based language where programs cannot crash, where garbage collection is fully concurrent and non-blocking, and where programs are guaranteed to be data-race free. Applications can run on a virtually infinite processor count and on arbitrarily large clusters, without changing the source code.
Pony is type safe. Really type safe. There's a mathematical proof and everything.
There are no dangling pointers and no buffer overruns. The language doesn't even have the concept of null!
There are no runtime exceptions. All exceptions have defined semantics, and they are always caught.
Pony doesn't have locks or atomic operations or anything like that. Instead, the type system ensures at compile time that your concurrent program can never have data races. So you can write highly concurrent code and never get it wrong.
This one is easy, because Pony has no locks at all! So they definitely don't deadlock, because they don't exist!
Pony is a ahead-of-time (AOT) compiled language. There is no interpreter or virtual machine.
Pony programs can natively call C libraries. Our compiler is able to generate a C-header file for Pony libraries. Consequently, C/C++ programs can natively call Pony programs!
The Pony standard library version 0.1.2 provides file handling, collection types, networking, http client and server, SSL/TLS, timers and timing, regular expressions, random numbers, and more.
Recent benchmarks comparing Pony to Erlang, Scala, CAF, Charm++ and MPI are available here. Among these, Pony is the only language that concurrently garbage collects actors.
There is a Sublime and Atom plugin. Vim and Visual Studio support will be available soon. Pony programs can be debugged using LLDB and GDB.
A detailed tutorial to help you become a Pony expert is available here.
You can always write to the developer's mailing list. Whatever your question is, it isn't dumb, and we won't get annoyed. There is also a mailing list to keep you up to date on the most important Pony announcements .
If you like to test Pony before installing anything or to browse through the standard library, have a look at our sandbox.
We share our work. Pony is open-source - and always will be. We have also published a collection of papers - and more are on the way!