4 ms·
I would be very interested in comparisons to Erlang. Erlang seems to be the king of reliable and fault-tolerant systems and Rust seems to have taken lessons fro
by TheHydroImpulse 12y ago
I would be very interested in comparisons to Erlang. Erlang seems to be the king of reliable and fault-tolerant systems and Rust seems to have taken lessons from it.
- Ixiaus 12y agoNot much to compare it to there. Rust's type system is much more advanced which is a big win and it is lower level but Erlang's model of reliability is based heavily on the BEAMVM. Rust has a good concurrency model but I doubt it will compare favorably with Erlang's distributed computing primitives and fault-tolerance features (read, fault-tolerance is not equivalent to type safety!!)
- TheHydroImpulse 12y agoThanks! Yeah, I was specifically pointing to how tasks in Rust work in terms of failure. The approach of "if it fails, just kill it and potentially restart it". This is the same approach that Storm has managed to be fault tolerant.
- Ixiaus 12y agoWell, you could build a process supervisor that runs in its own forked resource (I'm sure, I don't know the language too well) - we have that in Haskell too (you can see similar code in the Cloud Haskell project where you give a supervisor some child specs and it "supervises" them with a couple different restart strategies). Storm does it more at the machine level, while the philosophy is the same there it's not really done in the language but by Nimbus (correct me, someone, if I'm wrong). The things in Erlang that are novel are really features in its BEAM VM, and not as much in the language. Distributed RPC, a DNS system built in for discovery, hot-reloading, heartbeat, etc... I'm sad that Storm ended up being built on Java - Erlang would have been a perfect and probably better way to implement it.
- TheHydroImpulse 12y agoIndeed. I have never touched Erlang, so thanks for the insight. Storm is a hybrid Java/Clojure project, so it's much better than simply a Java project. But yeah, the fault tolerance is not in the language, but the project itself.
- Ixiaus 12y agoYou should play a but with Erlang. I no longer advocate weakly typed languages (i would choose Haskell or Scala over erlang these days) but it does have some novel concepts and is a fun language to play with.
- steveklabnik 12y agoErlang is strongly typed, not weakly. You mean "I no longer advocate dynamically typed languages."
- Ixiaus 12y agoYes I did mean that, thank you for the correction!