|
|
|
|
|
by valenterry
1965 days ago
|
|
Gotcha! If you already learned pure functional programming through Haskell, then I would not recommend to learn Scala to broaden your overall language-skills. If you haven't really done the pure functional programming thing, then I recommend to learn it. Especially the way of doing concurreny would be very very different from how it's done in both Rust and Elixir. Scala also has actors, but the other way of doing concurrent programming is more interesting. For example, check this here: https://zio.dev/docs/datatypes/datatypes_stm This is something you don't have in Rust or Elixir at all (to my knowledge). But if it's really just for the sake of learning, I think choosing Haskell is better - who cares about strings when you learn these things. If you want to specialize, learn Rust in and out. :D |
|
> This is something you don't have in Rust or Elixir at all (to my knowledge).
Maybe I am misunderstanding you but Erlang -- and thus Elixir -- has the best actor system invented so far. Message passing, copying data between actors, immutability, Erlang's OTP (fault-tolerance and tunable restarts of crashed actors), all of those things were the entire reason I moved my web work to Elixir at all. Well, the amazingly well done build and task executing tool `mix` turned out to be a huge and pleasant bonus, not to mention the very welcoming community and top-notch docs and best-I-ever-seen REPL experience.
In fact Erlang's actor system is so good that those in Scala and .NET were very heavily inspired by it. Akka in Java land as well.
Rust is getting there too -- the async semantics, the const functions and the various runtimes definitely are converging to much more efficient and machine-native actors with zero copying semantics and dynamic multiplexing on all CPU cores. I am extremely excited to see where Rust is headed in the next 5 years. It has the potential to get very close to the end-all be-all language.
> If you want to specialize, learn Rust in and out. :D
Completely agreed! There's so much work to be done out there that requires efficient use of hardware. So many companies have legacy systems still limping on ancient C/C++ monoliths and 2-3 brave souls are maintaining them, but the business wants either new features or the tech debt is preventing any improvements -- reasons abound.
Rust is extremely well-positioned to disrupt a lot of companies with legacy systems. I am planning to cash in on these opportunities. So it's a good advice from you, thank you.