Content deleted Content added
Added reference, which was previously under the external link section. |
Added history section. |
||
Line 22:
'''Pony''' (also referred to as '''ponylang''') is a [[Free software|free]] and [[open-source|open source]], object-oriented, [[actor model]], capabilities-secure, high performance programming language.{{Sfn|Allen|2024}}<ref name="hnoon">{{cite web |author=Alex Lashkov |date=26 July 2023 |title=The New Wave of Programming Languages: Pony, Zig, Crystal, Vlang, and Julia |url=https://hackernoon.com/the-new-wave-of-programming-languages-exploring-the-hidden-gems |access-date=24 December 2024 |website=Hackernoon}}</ref> 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".<ref name="orca">{{cite web |author1=Sylvan Clebsch | author2=Juliana Franco | author3=Sophia Drossopoulou |date=12 October 2017 |title=Ownership and Reference Counting Based Garbage Collection in the Actor World |url=https://dl.acm.org/doi/10.1145/3133896 |access-date=24 December 2024 |website=ACM Digital Library| doi=10.1145/3133896}}</ref><ref name="soc5">{{cite web | publisher=Society 5 Solutions | date=15 October 2024 |title=Introduction to the Pony Programming Language |url=https://www.linkedin.com/pulse/introduction-pony-programming-language-society-5-solutions-llc-s3ppf |access-date=28 December 2024 |website=LinkedIn}}</ref><ref name="dcpony">{{Cite web| author=Daniel Caccamo| year= 2018| title = GoA: Actors with Locally Managed Memory for Go| url= https://uwspace.uwaterloo.ca/bitstreams/b7bb2925-6bd6-49ab-a9b3-bc7581139529/download| access-date=28 December 2024 |website=UWSpace}}</ref> Sylvan Clebsch is the original creator of the language.<ref name="pfintech">{{cite web | author=Charles Humble |date=14 March 2016 |title=Using the Actor-model Language Pony for FinTec |url=https://www.infoq.com/news/2016/03/pony-fintech/ |access-date=24 December 2024 |website=InfoQ}}</ref><ref name="pqc2020">{{cite web |author=Sophia Drossopoulou |date=14 September 2020 |title=Pony, Actors, Causality, Types, and Garbage Collection |url=https://www.infoq.com/presentations/pony-types-garbage-collection/ |access-date=24 December 2024 |website=InfoQ}}</ref> It is now being maintained and developed by members of the Pony team.<ref>{{cite web |title=Team Pony | website=[[GitHub]] |url=https://github.com/orgs/ponylang/people |access-date=28 December 2024}}</ref>
==History==
The language was created by Sylvan Clebsch when earning his [[Ph.D]] at [[Imperial College London]]. His professor 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, along with other attributes that he wanted. The result is he began development on Pony.<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==
Line 44 ⟶ 47:
}}</ref>
=== Performance ===
* Lock-Free - 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">
* Native Code - Pony is an ahead-of-time (AOT) compiled language. There is no interpreter or virtual machine{{Sfn|Mölle|2017}}
* Concurrent Garbage Collection - 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>
|