Pony (programming language): Difference between revisions

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 Sylvanname="dcpony">{{Cite Clebschweb| isauthor=Daniel theCaccamo| mainyear= creator2018| oftitle the= language,GoA: whichActors waswith developedLocally inManaged collaborationMemory withfor otherGo| membersurl= ofhttps://uwspace.uwaterloo.ca/bitstreams/b7bb2925-6bd6-49ab-a9b3-bc7581139529/download| access-date=28 December 2024 |website=UWSpace}}</ref> Sylvan Clebsch is the Ponyoriginal teamcreator 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>
 
==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://qconlondon.com/ln2017/presentation/pony-co-designing-type-system-and-run-time QCon London: Co-Designing a Type System and Runtime]
* [https://www.infoq.com/interviews/clebsch-pony InfoQ Interview: Sylvan Clebsch on the Actor-Model Language Pony, Garbage Collection, Capabilities, Concurrency]
* [https://c7.se/from-go-to-pony/ From Go to Pony]
* [https://www.infoq.com/news/2016/03/pony-fintech InfoQ: Using the Actor-model Language Pony for FinTech]
* [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]