==History==
The language was created by Sylvan Clebsch, while a [[Ph.DPhD]] student at [[Department_of_Computing,_Imperial_College_London|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.<ref name="kgpony">{{cite conference |author=Kristoffer Grönlund |date=22 January 2018 | publisher=[[Linux.conf.au|Linux Conference Australia 2018 (LCA2018)]] |title=Everyone gets a pony!| url=https://archive.org/details/lca2018-Everyone_gets_a_pony| access-date=28 December 2024 |website=archive}}</ref>
==Language design==
* [[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.{{Sfn|Allen|2024}}<ref name="atpony">{{cite conference |author=Ankush Thakur |date=21 December 2024 | title=12 New Programming Languages You Should Know| url=https://geekflare.com/dev/new-programming-languages/| access-date=3 January 2025 |website=geekflare}}</ref>
* [[Exception safety]] - There are no runtime exceptions. All exceptions have defined semantics and are always caught.{{Sfn|MCStone|2023}}
* Concurrency Safetysafety - The type system employs reference capabilities to ensure (at compile time) that there are no [[Race_condition|data races]] nor [[Deadlock_(computer_science)|deadlocks]].{{Sfn|Mölle|2017}}<ref name="ipony">{{cite web |author=Sean T Allen |date=30 May 2018 |title=Introduction to the Pony programming language |url=https://opensource.com/article/18/5/pony |access-date=28 December 2024 |website=opensource}}</ref><ref>{{cite conference |author1 = Sylvan Clebsch | author2 = Sophia Drossopoulou | author3 = Sebastian Blessing | title = Deny capabilities for safe, fast actors | book-title = AGERE! 2015: Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control | date = October 2015 | pages = 1–12 | publisher = Association for Computing Machinery | ___location = Pittsburgh, PA, USA| isbn = 9781450339018 | doi = 10.1145/2824815.2824816 | editor = Elisa Gonzalez Boix, Philipp Haller, Alessandro Ricci, Carlos Varela}}</ref><ref name="soundness">{{cite web|author1=Juliana Franco|author2=Sylvain Clebsch|author3=Sophia Drossopoulou|author4=Jan Vitek|author5=Tobias Wrigstad| url=https://www.doc.ic.ac.uk/research/technicalreports/2018/DTRS18-1.pdf|title=Soundness of a Concurrent Collector for Actors|website=imperial|date=9 March 2018|access-date=8 March 2025}}</ref>
=== Performance ===
* Lock-Freefree - By design, Pony avoids the need for traditional locking mechanisms, which eliminates the overhead and contention associated with locks.<ref name="hnoon"></ref><ref name="kgpony"></ref>
* Native Codecode - Pony is an [[ahead-of-time (AOT)compilation|ahead-of-time [[compiled language]]. There is no interpreter or virtual machine{{Sfn|Mölle|2017}}<ref name="atpony"></ref>
* Concurrent Garbagegarbage Collectioncollection - Each actor's heap is collected separately and concurrently, avoiding the need to "stop the world" for global collection.<ref name="pfintech"></ref><ref name="pqc2020"></ref><ref name="soundness"></ref>
==Examples==
</syntaxhighlight>
There are no global variables in Pony, meaning everything must be contained within an instance of a class or an actor.<ref name="kgpony" /> As such, even the environment that allows for printing to [[stdout]] is passed as a parameter.<ref name="kgpony" />{{Sfn|Allen|2024}}
==References==
|