Re:Learning Programming with Nim
by gulabjamyn on Wednesday June 13, 2018 @02:30PM
(#17305793)
Pony often has breaking changes. Not yet 1.0
Re:Learning Programming with Nim
by dual_basis on Wednesday June 13, 2018 @06:24PM
(#17307517)
Yeah, this is exactly why I didn't consider Pony.
Re:Learning Programming with Nim
by dual_basis on Wednesday June 13, 2018 @07:45PM
(#17308020)
Pony 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.
It is early days for Pony for sure, but it does have a package manager: 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.
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