Pony (programming language): Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: template type, pages. Add: date, pages, issue, volume, journal, website, title. Changed bare reference to CS1/2. Removed parameters. Formatted dashes. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Eastmain | Category:AfC pending submissions by age/1 day ago | #UCB_Category 10/51
Updated references.
Line 31:
=== Safety ===
* Type Safety - Pony is a type safe language.<ref>https://www.ponylang.org/media/papers/fast-cheap.pdf</ref><ref name="hnoon"></ref>
* 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 2024 |website=geekflare}}</ref>
* Exception Safety - There are no runtime exceptions. All exceptions have defined semantics and they are always caught.{{Sfn|MCStone|2023}}
* Concurrency Safety - The type system employs reference capabilities to ensure (at compile time) that your program is free of data races and 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
Line 50:
=== 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"></ref>
* Native Code - Pony is an ahead-of-time (AOT) compiled language. There is no interpreter or virtual machine{{Sfn|Mölle|2017}}<ref name="atpony"></ref>
* 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 65:
</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><ref>{{cite web |author=Peter Hellberg |title=From Go to Pony | website=c7 |date=April 2016 |url=https://c7.se/from-go-to-pony |access-date=28 December 2024}}</ref> As such, even the environment that allows for printing to '''stdout''' is passed as a parameter.
 
==References==