Why has the Erlang Open Telecom (OTP) platform not been ported to other languages?

I'm starting to dive into Erlang for the first time, and OTP is held down by amateurs and critics as the gold standard for highly available distributed processing.

Given that OTP has existed for several decades and is openly documented, why other languages ​​that support lightweight threads / processes did not use their own versions? Are there technical / political issues? Or is everyone just shrugging and studying Erlang?

Thanks!

+4
source share
3 answers

The biggest problem is that most language versions do not have built-in lightweight concurrency and error isolation with output propagation. Without these things, it will be very difficult for you to endure OTP.

For languages ​​that have the correct runtime, I see some effort, or at least plans to create OTP shells. Cloud Haskell is the first thing that comes to mind. I also expect Go and Rust to end up with something like OTP if they haven't already.

+6
source

There are technical issues because Erlang itself is designed for the same functions as OTP. The thing is, Basho Riak is a distributed fail-safe key / value store written in Erlang. You could port it to Haskell or some similar functional language, but it will probably be a lot of work. Just for fun, you can learn the OTP stuff written in the Elixir language .

+1
source

Actually, it was (tried).

Akka is a library that takes some OTP functions and implements them in Scala for the JVM. Given the principles underlying JVM and BEAM (Erlang VM), they are very different (mainly GC, scheduling and messaging are radically different), I can’t say how successful this implementation is and how many advantages of the original OTP it retains. There is a lot of (hot) debate about this on the Internet.

0
source

All Articles