TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Pony Programming Language

196 pointsby curling_gradover 2 years ago

17 comments

CobrastanJorjiover 2 years ago
I want to thank whoever wrote the "Why Not To Use Pony" bullet points. They're quite honest and helpful. Most of these sorts of pages are 110% "rah rah our language is the best for every possible situation, which makes it hard to figure out how to evaluate them. For me personally, this has seemed worst with database products. No matter what the database's actual pros and cons are, their project pages will swear that they are the best at every possible scenario that might involve data.
评论 #33981197 未加载
评论 #33979108 未加载
评论 #33977276 未加载
评论 #33974442 未加载
zengidover 2 years ago
Fun fact: the person who created Pony, Sylvan Clebsch, has been working on a Microsoft Research project called Verona. From it&#x27;s README [0]:<p>&gt; <i>Project Verona is a research programming language to explore the concept of concurrent ownership. We are providing a new concurrency model that seamlessly integrates ownership.</i><p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;verona&#x2F;tree&#x2F;master" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;verona&#x2F;tree&#x2F;master</a>
评论 #33977838 未加载
评论 #33987567 未加载
wiremineover 2 years ago
A previous conversation: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17195580" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17195580</a><p>On a sort-of-related topic: I&#x27;ve been checking out the Inko programming language, which has some similar goals&#x2F;ideals as Pony:<p><a href="https:&#x2F;&#x2F;inko-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;inko-lang.org&#x2F;</a><p>Inko lists Erlang and Pony as inspiration for its concurrency model:<p>&quot;Inko uses lightweight processes for concurrency, and its concurrency model is inspired by Erlang and Pony. Processes are isolated from each other and communicate by sending messages. Processes and messages are defined as classes and methods, and the compiler type-checks these to ensure correctness.&quot;
评论 #33971711 未加载
评论 #33974062 未加载
评论 #33974374 未加载
krylonover 2 years ago
I looked into pony a couple of years ago. The type system was <i>gorgeous</i>, but the library ecosystem was very spartan.<p>I hope they get there eventually, I liked the language itself a lot. The learning curve is very steep at first, but I felt that I got over hump after a couple of days playing with it after work.
twicover 2 years ago
To me, the interesting thing about Pony is its system of reference capabilities:<p><a href="https:&#x2F;&#x2F;blog.beardhatcode.be&#x2F;2018&#x2F;10&#x2F;pony-capabilities.html" rel="nofollow">https:&#x2F;&#x2F;blog.beardhatcode.be&#x2F;2018&#x2F;10&#x2F;pony-capabilities.html</a><p>They feel a lot like Rust&#x27;s system of ownership and borrowing, but oriented more towards safe communication in an actor system rather than safe memory management.
no_wizardover 2 years ago
It seems to this shares a lot of similarities with Elixir. The biggest thing that stood out to me is Pony appears to be object oriented in approach where as Elixir is function in approach.<p>Aside from Elixir being a bigger community the core goals and purpose seem very similar to me
Vedorover 2 years ago
I used Pony for a small hobby project around 2 years ago. It looked promising and I had a lot of fun using Pony. My biggest gripe was lack of high quality materials to actually learn the language, especially that some concepts were new to me. The community on Zulip, including the main contributors like Sean Allen, were very welcoming and helpful.
pard68over 2 years ago
Minor nit, it takes far too many clicks to see what the language looks like.
评论 #33971604 未加载
评论 #33974616 未加载
评论 #33977475 未加载
lowbloodsugarover 2 years ago
&gt;Actors themselves, however, are sequential. That is, each actor will only execute one behaviour at a time. This means all the code in an actor can be written without caring about concurrency: no need for locks or semaphores or anything like that.<p>I mean, sure, it&#x27;s nice not to have to build this behavior in Java, but it can (and I and many other have) be built in Java, and then there&#x27;s still Java&#x27;s massive code base available. I have yet to do it in Rust, but Rust probably has great support for just this.<p>But let&#x27;s not pretend that this solves all problems related to &quot;concurrency&quot;, such as race conditions. In fact it specifically only solves problems where the individual state of an actor is completely independent of any other actor. Sure, that&#x27;s a lot of places if done right, but in those places, a queue driven FSM in Java does the job.
评论 #34011112 未加载
nikiviover 2 years ago
Was reading docs on actors<p><a href="https:&#x2F;&#x2F;tutorial.ponylang.io&#x2F;types&#x2F;actors.html" rel="nofollow">https:&#x2F;&#x2F;tutorial.ponylang.io&#x2F;types&#x2F;actors.html</a><p>And I wonder what makes pony actors different to Go&#x27;s goroutines?
评论 #33971513 未加载
评论 #33971768 未加载
samsquireover 2 years ago
I am interested in Pony due to the compiler maintaining safety while multithreading.<p>I am working on a multithreaded language that has its own interpreter and compiler that codegens targeting it.<p>I use message passing but shared memory mailboxes using a lockfree algorithm.<p>I am trying to solve a multithreading problem which is the sharing of objects between threads. I want shared memory semantics between separate interpreters but avoiding copying.<p>For an interpreter to be aware of an object it needs to have a pointer to it. So I need to update a book keeping for the object to refer to it.
评论 #33977091 未加载
zfxfrover 2 years ago
I wish there was some code samples. Just to get an idea of how it looks like. I browsed the website but could not find any.. Except for the playgroud with only one &quot;hello world&quot;
评论 #33976499 未加载
jevgeniover 2 years ago
is it just me, or is it super difficult to find code samples - even in the tutorial?
评论 #33971608 未加载
评论 #33977471 未加载
评论 #33975308 未加载
评论 #33971705 未加载
bketelsenover 2 years ago
If you&#x27;re curious about how Pony works, I did a Youtube stream(1) a few years back with Sean Allen from Wallaroo Labs. He patiently walked me through many of Pony&#x27;s features.<p>1: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=s4W4Jb-AAVI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=s4W4Jb-AAVI</a>
dangover 2 years ago
Related:<p><i>Ask HN: Why didn&#x27;t Pony take off?</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=31606084" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=31606084</a> - June 2022 (3 comments)<p><i>We moved from Pony to Rust</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28777306" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28777306</a> - Oct 2021 (175 comments)<p><i>Pony – High-Performance Safe Actor Programming</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25957307" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=25957307</a> - Jan 2021 (152 comments)<p><i>Pony, Actors, Causality, Types, and Garbage Collection</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24398469" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24398469</a> - Sept 2020 (29 comments)<p><i>Pony: Lock-less, data-race-free concurrency</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24201754" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24201754</a> - Aug 2020 (1 comment)<p><i>Pony 0.33.1</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21784698" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21784698</a> - Dec 2019 (2 comments)<p><i>Pony 0.29</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20370448" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20370448</a> - July 2019 (19 comments)<p><i>Pony 0.27.0 has been released</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19285762" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19285762</a> - March 2019 (1 comment)<p><i>Fearless Concurrency: Clojure, Rust, Pony, Erlang and Dart</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19241427" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19241427</a> - Feb 2019 (143 comments)<p><i>Pony 0.25.0 released</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18212633" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18212633</a> - Oct 2018 (38 comments)<p><i>Show HN: Pony Programming Workshop</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17619483" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17619483</a> - July 2018 (5 comments)<p><i>Introduction to the Pony programming language</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17195580" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=17195580</a> - May 2018 (72 comments)<p><i>The Snake and the Horse: How Wallaroo&#x27;s Python API Works with Pony</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16768706" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16768706</a> - April 2018 (8 comments)<p><i>Some high level information about the Pony programming language</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16619264" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16619264</a> - March 2018 (10 comments)<p><i>Why we wrote our Kafka Client in Pony</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16264845" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16264845</a> - Jan 2018 (95 comments)<p><i>Dynamic Tracing a Pony and Python Program with DTrace</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15953050" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15953050</a> - Dec 2017 (2 comments)<p><i>Why we used Pony to write Wallaroo</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15558051" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15558051</a> - Oct 2017 (84 comments)<p><i>Pony Performance Cheatsheet</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14999899" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14999899</a> - Aug 2017 (35 comments)<p><i>Pony: Combining safe memory sharing with Erlang-like actors</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14676505" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14676505</a> - July 2017 (62 comments)<p><i>An Early History of Pony</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14280565" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14280565</a> - May 2017 (8 comments)<p><i>Pony language 0.11.0 released</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13846063" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13846063</a> - March 2017 (52 comments)<p><i>On the State of Pony</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12331458" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12331458</a> - Aug 2016 (40 comments)<p><i>Using Pony for Fintech [video]</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11849579" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11849579</a> - June 2016 (6 comments)<p><i>Using the Actor-Model Language Pony for FinTech</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11297836" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11297836</a> - March 2016 (1 comment)<p><i>Pony Patterns: Waiting</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10927475" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10927475</a> - Jan 2016 (3 comments)<p><i>Pony is an open-source, actor-model, high performance programming language</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10902906" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10902906</a> - Jan 2016 (57 comments)<p><i>Inside the Pony TCP Stack</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10762196" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10762196</a> - Dec 2015 (1 comment)<p><i>Pony – High Performance Actor Programming</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9482483" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9482483</a> - May 2015 (124 comments)
Thaxllover 2 years ago
Isn&#x27;t that language dead? Some startup used a new language because apparently nothing else in the world could fit their use case ( which was simple ) only to move to Rust after chocking discovery that it was a terrible idea from the start.<p><a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20171028135810&#x2F;https:&#x2F;&#x2F;blog.wallaroolabs.com&#x2F;2017&#x2F;10&#x2F;why-we-used-pony-to-write-wallaroo&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20171028135810&#x2F;https:&#x2F;&#x2F;blog.wall...</a><p>Then:<p><a href="https:&#x2F;&#x2F;www.wallaroo.ai&#x2F;blog&#x2F;wallaroo-move-to-rust" rel="nofollow">https:&#x2F;&#x2F;www.wallaroo.ai&#x2F;blog&#x2F;wallaroo-move-to-rust</a>
评论 #33971413 未加载
评论 #33975139 未加载
评论 #33971081 未加载
评论 #33972998 未加载
评论 #33971305 未加载
jwmcqover 2 years ago
I wonder if there&#x27;s somewhere that people can propose a name for things and people can tell them why they might want to use something else - &#x27;Pony&#x27; is fairly common slang for &#x27;crap&#x27; in London &#x2F; Southern England.
评论 #33974071 未加载
评论 #33973836 未加载
评论 #33976231 未加载
评论 #33974880 未加载