3 ms·
You may want to consider Pony: https://www.ponylang.org/ https://www.ponylang.org/ Pony has compile time guarantees on not having data races, dead locks, runti
by rubiquity 8y ago
You may want to consider Pony: https://www.ponylang.org/ https://www.ponylang.org/
Pony has compile time guarantees on not having data races, dead locks, runtime exceptions. It accomplishes this in a different way than Rust. For concurrency/async, Pony is Actor based, which I find to be a joy for modeling concurrent applications.
Here's a high level: https://www.ponylang.org/discover/#what-is-pony https://www.ponylang.org/discover/#what-is-pony
- gulabjamyn 8y agoPony often has breaking changes. Not yet 1.0
- dual_basis 8y agoYeah, this is exactly why I didn't consider Pony.
- dual_basis 8y agoPony looks great, but based on reading the docs it seems it is a bit too early to do much with it. Looks like they don't really have any tooling (package manager?) yet.
- rubiquity 8y agoIt is early days for Pony for sure, but it does have a package manager: https://github.com/ponylang/pony-stable https://github.com/ponylang/pony-stable The breaking changes have been minimal since I've started using it. Typically just slight changes to some type signatures. The core parts (Actors, Reference Capabilities, Classes/Traits/Interfaces) are all stable at this point. I'm amazed by how well ponyc (the compiler) works. You just run it and it figures everything out. If I could change anything in the language right now, I wouldn't mind seeing a couple of the reference capabilities renamed (trn, box, and maybe tag specifically), though I don't have any better names to offer. I'd also like if Actor Behaviour dispatch had a different syntax than Object method invoke.