Pony (programming language): Difference between revisions

Content deleted Content added
Add additional categories
Added mascot of Pony programming language from wikimedia
 
(4 intermediate revisions by 2 users not shown)
Line 2:
{{Infobox programming language
| name = Pony
| logo = Main-gallopingMain_galloping.svg
| paradigm = [[Actor model]], [[object-oriented programming|Object-oriented]], [[Imperative programming|Imperative]]
| designer = Sylvan Clebsch<ref>{{cite web |title=Sylvan Clebsch |website=[[Association for Computing Machinery|ACM]] |url=https://dl.acm.org/profile/83358632257}}</ref>
Line 8:
| influenced = [[Project Verona]]<ref name="zdnetver">{{Cite web|url=https://www.zdnet.com/article/microsoft-opens-up-rust-inspired-project-verona-programming-language-on-github/|title=Microsoft opens up Rust-inspired Project Verona programming language on GitHub|quote="Project Verona, which also borrows concepts from Cyclone, a "safe dialect of C" and Pony, which has key contributors from Microsoft Research"|author1=Liam Tung|website=ZDNet}}</ref>
| released = {{Start date and age|2015|04|28|df=yes}}<ref>{{cite web |title=First public release | website=[[GitHub]] |url=https://github.com/ponylang/ponyc/releases/tag/0.1.0 |date=28 April 2015}}</ref>
| latest_release_version = 0.5859.130
| latest_release_date = {{start date and age|2025|0304|0926}}
| typing = [[strong typing|strong]], [[static typing|static]], [[type inference|inferred]], [[nominal typing|nominal]], [[structural typing|structural]]
| website = {{URL|http://www.ponylang.org}}
Line 24:
At its core, Pony is a systems language designed around safety and performance.
=== Safety ===
* [[Type safety]] - Pony is a type safe language.</ref><ref name="jmpony">{{cite web |author=John Mumm |date=19 March 2019 |title=Safely Sharing Data: Reference Capabilities in Pony |url=https://talks.codemotion.com/safely-sharing-data-reference-capabiliti |access-date=28 December 2024 |website=codemotion}}</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 2025 |website=geekflare}}</ref>
* [[Exception safety]] - There are no runtime exceptions. All exceptions have defined semantics and are always caught.{{Sfn|MCStone|2023}}
Line 30:
 
=== Performance ===
* Lock-free - By design, Pony avoids the need for traditional locking mechanisms, which eliminates the overhead and contention associated with locks.</ref><ref name="kgpony"></ref>
* Native code - Pony is an [[ahead-of-time compilation|ahead-of-time 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><ref name="soundness"></ref>
Line 65:
[[Category:Multi-paradigm programming languages]]
[[Category:Software using the BSD license]]
[[Category:Cross-platform software]]
[[Category:Cross-platform free software]]
[[Category:Free and open source compilers]]