3 ms·
Creating and evolving programming languages is a difficult task. It also takes considerable time to write a decent set of libraries and iron out most of the wri
by plainOldText 8y ago
Creating and evolving programming languages is a difficult task. It also takes considerable time to write a decent set of libraries and iron out most of the wrinkles before it can be used in production.
As more people move into programming, we're bound to see more languages on the horizon. I wonder what the most popular languages will be, say, 10 years from now?
I'm personally looking forward seeing one language reach maturity – Pony – https://www.ponylang.io/ https://www.ponylang.io/
It seems that it brings some novel concepts to the table, one being the combo: statically compiled + actor model + high performance + capabilities secure.
- jb3689 8y agoPony's memory sharing model used with Actors is really interesting. When I was writing in Elixir the overhead of deep cloning any message (or almost any - I realize large binaries are an exception) between actors seemed like a big limitation. I think Pony offers an interesting solution I remember coming across some big systematic gotcha with Pony when I was learning though. It's been a year or two since I've even thought about it though and my brain is foggy. I think it'll take more adoption of both Erlang/Elixir and Rust for people to really see the benefits of what Pony offers. It's a really ambitious language for sure
- plainOldText 8y agoAlthough it comes at the expense of better performance, not having shared memory between actors in Erlang was a deliberate decision, as it offers a few advantages over the shared model: * More robust failure recovery, as actors can be restarted truly independently in case of faults * Better distribution out of the box as actors on different machines can't share memory anyway On the other hand, Pony does promise to catch certain types of errors at compile time, but this is hardly foolproof, as long running programs will still encounter hardware and runtime errors. But since these classes of errors are less common, one can choose to live with them. Ultimately, one must learn to compromise one way or another. For now, I'm happy I can extend Elixir via Rust.