![]() | |
Paradigm | Actor model, Object-oriented, Imperative |
---|---|
Designed by | Sylvan Clebsch [1] |
First appeared | 28 April 2015 [2] |
Stable release | 0.59.0 / April 26, 2025 |
Typing discipline | strong, static, inferred, nominal, structural |
Implementation language | C |
License | BSD-2. [3] |
Website | www |
Influenced by | |
E [4] | |
Influenced | |
Project Verona [5] |
Pony (also referred to as ponylang) is a free and open source, object-oriented, actor model, capabilities-secure, high performance programming language. [6] [7] Pony's reference capabilities allow even mutable data to be safely passed by reference between actors. Garbage collection is performed concurrently, per-actor, which eliminates the need to pause program execution or "stop the world". [8] [9] [10] Sylvan Clebsch is the original creator of the language. [11] [12] It is now being maintained and developed by members of the Pony team. [13]
The language was created by Sylvan Clebsch, while a PhD student at Imperial College London. His professor at that time was Sophia Drossopoulou, who is also well known for her contributions to computer programming, and as a lecturer. According to developers who have talked to Sylvan, he was frustrated with not having a high performance language that could run concurrent code securely, safely, and more simply. [14]
At its core, Pony is a systems language designed around safety and performance.
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. [6] [17]
actorMainnewcreate(env:Env)=>env.out.print("Hello, world!")
There are no global variables in Pony, meaning everything must be contained within an instance of a class or an actor. [14] As such, even the environment that allows for printing to standard output is passed as a parameter. [14] [6]
Pony is itself inspired by the design of E's programming model
Project Verona, which also borrows concepts from Cyclone, a "safe dialect of C" and Pony, which has key contributors from Microsoft Research
{{cite conference}}
: CS1 maint: multiple names: editors list (link)