Content deleted Content added
Added source to statement |
1) Adding of more sources. 2) Removal of external links which are already uses as sources or would be better for that purpose. |
||
Line 21:
}}
'''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
==Language design==
Line 44:
}}</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">{{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>
* 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>
Line 60:
</syntaxhighlight>
There are no global variables in Pony, everything must be contained within an instance of a class or an actor.<ref name="kgpony"></ref> As such, even the environment that allows for printing to '''stdout''' is passed as a parameter.
==References==
Line 73:
* [http://www.ponylang.org Official website]
* [https://tutorial.ponylang.io/ Ponylang Tutorial]
* [https://www.youtube.com/watch?v=KvLjy8w1G_U Pony: Making it easy to write efficient, concurrent, data race free programs] at [http://curry-on.org/2015/sessions/pony-making-it-easier-to-write-efficient-concurrent-programs.html Curry On 2015] associated with [[ECOOP]] [http://2015.ecoop.org/ 2015]
|