2 ms·
I had a brief dalliance with pony last year, though I wasn't coming at it from a systems perspective. At the time, it was the "lowest level" programming languag
by mindB 8y ago
I had a brief dalliance with pony last year, though I wasn't coming at it from a systems perspective. At the time, it was the "lowest level" programming language I had used.
Maybe the author's perspective is just that much different from mine (he's used to things like C++ and Rust), but "simple" is just about the last word I'd use to describe pony. Don't get me wrong: Pony is a pleasure to work with, and it is no more complicated than necessary for the problem it's trying to solve, but adding the capabilities layer to the normal type system makes for a language that has a lot going on. I'd expect that the amount of fighting newcomers do with the capabilities system is similar to how people fight Rust's borrow checker. Maybe the author just didn't have enough actors that wanted to share state/communicate where it wasn't an issue for him.
In any case, I highly recommend anyone thinking about picking up a new programming language to give pony a look, especially if problems you're trying to solve are amenable to high levels of concurrency and need to run fast. The pony capability system basically eliminates data race bugs (within pony), and also guarantees against runtime crashes. It's got a bit of a learning curve, and the package ecosystem around it isn't great yet, but it's doing unique things to solve problems many languages aren't attempting to address.