Pony (programming language): Difference between revisions

Content deleted Content added
Begin Articles for creation (AfC) process
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
Line 18:
| typing = [[strong typing|strong]], [[static typing|static]], [[type inference|inferred]], [[nominal typing|nominal]], [[structural typing|structural]]
| website = {{URL|http://www.ponylang.org}}
| license = [[BSD licenses|BSD]]-2.<ref>{{cite web | url=https://github.com/ponylang/ponyc/blob/master/LICENSE | title=Ponyc/LICENSE at main · ponylang/Ponyc | website=[[GitHub]] }}</ref>
| programming_language = [[C (programming language)|C]]
}}
 
'''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 webjournal |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 |websitejournal=Proc. ACM DigitalProgram. Lang.| volume=1 | issue=OOPSLA | pages=72:1–72:28 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 name="dcpony">{{Cite web| author=Daniel Caccamo| year= 2018| title = GoA: Actors with Locally Managed Memory for Go| url= https://uwspace.uwaterloo.ca/bitstreams/b7bb2925-6bd6-49ab-a9b3-bc7581139529/download| access-date=28 December 2024 |website=UWSpace}}</ref> Sylvan Clebsch is the original creator 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>
 
==History==
Line 40:
| book-title = AGERE! 2015: Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control
| date = October 2015
| pages = 1-121–12
| publisher = Association for Computing Machinery
| ___location = Pittsburgh, PA, USA
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==