3 ms·
Based on the features presented in the talk, Pony looks like a great language: * Actor-model * Concurrency-aware type system * Zero-copy message queues
by plainOldText 10y ago
Based on the features presented in the talk, Pony looks like a great language:
* Actor-model
* Concurrency-aware type system
* Zero-copy message queues
* Work-stealing topology-aware scheduling
* Fully concurrent GC with no stop the world
Since there's no such thing as a perfect language for all problems, I wonder what's "the catch" with this language - besides the obvious "not enough libraries yet"?
- vegasje 10y agoThe catch is capabilities: http://tutorial.ponylang.org/capabilities/ http://tutorial.ponylang.org/capabilities/ Once you get your head around them it's not so bad, but to a newcomer it's quite daunting. In my opinion the code becomes less immediately readable when compared to a language like Go, for instance. Still love it though.
- doublec 10y agoI use Pony a bit, and wrote some things here: https://bluishcoder.co.nz/tags/pony/ https://bluishcoder.co.nz/tags/pony/ My list of catches would be: * Reference capabilities take a while to grasp. No more than Rust's borrowing or ATS viewtypes though. * Garbage collection occurs between behaviour calls only. If you do something in a loop that allocates a lot in a single behaviour then you'll get memory issues. * There's no blocking calls. You need to structure your code so that actors receive notifications of things occurring instead. * Behaviours don't return anything as they are asynchronous. This requires using promises or passing callbacks. That said, once you grasp these it's nice to program in. Fast, readable, and makes concurrent/parallel code easy to write and safe to pass data around. The C FFI is easy to use. You can package Pony code as a library callable from C too.
- elecengin 10y agoI would say the catch is that all of the messaging queues are unbounded.