Title: I&#x27;m intrigued by the claims about them but also don&#x27;t entirely understand the marketing<p>&quot;Elixir is a dynamic, functional language for building scalable and maintainable applications.&quot;<p>OK, there are lots of languages that are either or both dynamic and functional, and they can all used to build scalable and maintainable transactions.<p>&quot;Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems.&quot;<p>Let&#x27;s skip over &quot;low-latency&quot;, because virtually all programming languages and VMs are &quot;low-latency&quot;.<p>&quot;distributed&quot; and &quot;fault-tolerant&quot; are what&#x27;s most often touted as &quot;special&quot;.<p>I&#x27;m not sure what &quot;distributed&quot; means here? Any app in most languages can be coded to be &quot;distributed&quot; both on the scale of within a single machine and at the scale of deploying multiple small instances of it. (eg Kubernetes, running it on multiple EC2s etc etc)<p>As for &quot;fault tolerant&quot;: &quot;The unavoidable truth about software in production is that things will go wrong. Even more when we take network, file systems, and other third-party resources into account. To react to failures, Elixir supervisors describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work&quot;<p>Don&#x27;t entirely understand this either. In a run of the mill corporate Java app, if you experience an exception eg calling another service, unless you&#x27;re doing something very strange, your app will not stop running, it will just keep error logging those exceptions until the problem is resolved. (whether by the target service coming back online or you send out a fix for the call or whatever) Really the only time an app will outright crash and completely stop is if it experiences errors attempting to boot in the first place, and the correct solution there is to not allow instances that don&#x27;t respond 200 OK on &#x2F;health to take traffic. You certainly don&#x27;t want to attempt restart the system as it won&#x27;t do any good.<p>So I&#x27;m left wondering, am I missing something or is there really not much to the claims about Erlang and Elixir? Don&#x27;t get me wrong, this is not me criticizing Erlang or Elixir or the hype machine around them, every language has to have marketing and that&#x27;s fine. It&#x27;s also not me advocating corporate Java (shudder) - I&#x27;m just using it as an example of a common technology that also seems to tick all the same boxes as Erlang and Elixir as far as these claims go.
Upvote: