Erlang is designed for parallel fault tolerant communications systems. You can easily write servers that handle a large number of network connections and (thanks to a single garbage collector per Erlang process), servers can maintain soft characteristics in real time (i.e. the whole server does not stop until the end of the GC). You can also build Erlang code, distribute it across multiple nodes, etc. Therefore (possibly) the most scalable XMPP server (ejabberd) is written in Erlang. Yaws (web server) is another example where Erlang excels: http://www.sics.se/~joe/apachevsyaws.html . Riak / Couch are examples of building a NoSQL database using Erlang. These are problems in which Erlang is an excellent choice.
But Erlang VM is not as fast as the JVM in terms of raw computing, so as soon as you need to do something computationally intensive (like financial modeling), the JVM will become your preferred platform. Moreover, the Erlang concurrency model (actors) is baked in this language. If this does not match the problem you are trying to solve, then you will not be satisfied with Erlang.
Scala is a more "general" language in the sense that concurrency, horizontal scalability, or fault tolerance are not part of the language. It is solved at the library level (therefore, Scala has at least 3 actor implementations). Itβs good that you can choose a concurrency model that fits your domain. For example, if you need transactional memory software (STM), just select Akka and you should go ( http://akka.io/ ).
Plus there is a whole argument that with Scala you can use your "investment in JVM" and many JVM libraries.
You did not give any information about what software you want to write in any of these languages, so it is difficult for you to give a definitive answer. Having said that, with all of the above, Scala can be a βsaferβ capital than Erlang (don't beat Erlang / OTP at all, it's a great language / platform).
BTW. If one concurrency Clojure machine ( http://clojure.org/ ) is important to you, you should not overlook (also the JVM language).
UPDATE1: If you like what Erlang offers but not its syntax, check elixir-lang.org
romusz Jul 25 2018-11-21T00: 00Z
source share