Draft:Pony (programming language)

Pony (sometimes referred to as ponylang) is a free and open source, object-oriented, actor model, capabilities-secure, high performance programming language. Pony's reference capabilities allow even mutable data to be safely passed by reference between actors. Garbage collection is performed concurrently, per-actor, without the need to "stop the world".

Language design
At its core, Pony is a systems language designed around safety and performance.

Safety

 * Type Safety - Pony is a type safe language.
 * Memory Safety - There are no dangling pointers and no buffer overruns. There is no null but optional types can be safely represented using unions with the None type.
 * Exception Safety - There are no runtime exceptions. All exceptions have defined semantics and they are always caught.
 * Concurrency Safety - The type system employs reference capabilities to ensure (at compile time) that your program is free of data races and deadlocks.

Performance

 * Lock-Free - By design, Pony avoids the need for traditional locking mechanisms, which eliminates the overhead and contention associated with locks.
 * Native Code - Pony is an ahead-of-time (AOT) compiled language. There is no interpreter or virtual machine
 * Concurrent Garbage Collection - Each actor's heap is collected separately and concurrently, avoiding the need to "stop the world" for global collection.

Examples
A few examples of idiomatic Pony follow.

Hello World
In Pony, instead of a main function, there is a main actor. The creation of this actor serves as the entry point into the Pony program.

There are no global variables in Pony, everything must be contained within an instance of a class or an actor. As such, even the environment that allows for printing to stdout is passed as a parameter.