Content deleted Content added
Link statement about environment and stdout to reference, per directive |
Added mascot of Pony programming language from wikimedia |
||
(19 intermediate revisions by 5 users not shown) | |||
Line 1:
{{Short description|Programming language}}
{{Infobox programming language
| name = Pony
| logo =
| paradigm = [[Actor model]], [[object-oriented programming|Object-oriented]], [[Imperative programming|Imperative]]
| designer = Sylvan Clebsch<ref>{{cite web |title=Sylvan Clebsch |website=[[
| influenced by = [[E (programming language)|E]]<ref name="gems">{{cite web|author1=Daniele BonettaLuca|author2=Svizzera italiana|author3=Stefan Marr|author4=Walter Binder|url=https://labs.oracle.com/pls/apex/f?p=LABS:0:107979754432222:APPLICATION_PROCESS=GETDOC_INLINE:::DOC_ID:975|title=GEMS: Shared-Memory Parallel Programming for Node.js|quote=Pony is itself inspired by the design of E's programming model|website=oracle|date=2 November 2016|access-date=10 March 2025}}</ref>
| 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.
| latest_release_date = {{start date and age|2025|
| typing = [[strong typing|strong]], [[static typing|static]], [[type inference|inferred]], [[nominal typing|nominal]], [[structural typing|structural]]
| website = {{URL|http://www.ponylang.org}}
Line 33 ⟶ 16:
}}
'''Pony''' (also referred to as '''ponylang''') is a [[Free software|free]] and [[open-source|open source]], object-oriented, [[actor model]], [[Capability-
==History==
The language was created by Sylvan Clebsch, while a [[
==Language design==
At its core, Pony is a systems language designed around safety and performance.
=== Safety ===
* [[Type safety]] - Pony is a type safe language.
* [[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}}
* Concurrency
=== Performance ===
* Lock-
* Native
* Concurrent
==Examples==
===Hello World===
Line 63 ⟶ 45:
</syntaxhighlight>
There are no global variables in Pony, meaning everything must be contained within an instance of a class or an actor.<ref name="kgpony" /> As such, even the environment that allows for printing to [[stdout|standard output]] is passed as a parameter.<ref name="kgpony" />{{Sfn|Allen|2024}}
==References==
Line 78 ⟶ 60:
* [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]
[[Category:Programming languages]]
[[Category:Concurrent programming languages]]
[[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]]
|