1. 25

  2. 11

    If I’m reading this right, it talks the protocol that OTP uses for distributed Erlang (which is one of the ways you can do FFI in Erlang: write a C / whatever program that appears as one or more processes to Erlang code) in Go and provides some nice Go interfaces that look like Erlang for the Go programmer to use? Within the Go part of the world, you can have mutable (and shared mutable) state that would violate the invariants of the Erlang abstract machine if exposed there, but it’s conveniently hidden in some Go actors and so the Erlang world only sees immutable objects.

    It looks quite neat, but you give up a lot of safety by going from Erlang to Go. If I needed single-threaded performance that badly, I think I’d probably go all of the way to C++. There seem to be a bunch of dead attempts to do this in C++, this seems to be the only actively maintained one.

    1. 7

      Rustler lets you code the performance-sensitive parts in Rust. Stay in Erlang for its safety. Stay safe, fast, and integrated when you leave it.

    2. 2

      They talk a lot about speed but not much about the prior usefulness of Erlang/OTP. Seems like more of a feature-gasm than progress to me. @david_chisnall’s comment is more educated where this is concerned, though.