Interesting article, but the worst title ever. Erlang <i>is</i> a functional, concurrent programming language. It reduces all non-trivial programs to actor-model concurrency, with an implementation that does green threads multiplexed over native threads. If you ignore this fact, your programs will either be very slow or very wrong.<p>What we might <i>sell it as</i> is an interesting and fair question, but to say it <i>is not</i> a thing which it clearly is, that's wrong.
Author is mixing up Erlang with OTP. Erlang is a concurrent, functional programming language. OTP is package of design patterns for building reliable systems.
"con·cur·rent
[kuhn-kur-uhnt, -kuhr-]
–adjective
1.
occurring or existing simultaneously or side by side: concurrent attacks by land, sea, and air. "<p>In conjunction with:<p>Inside the Erlang VM with focus on SMP
<a href="http://www.erlang.org/euc/08/euc_smp.pdf" rel="nofollow">http://www.erlang.org/euc/08/euc_smp.pdf</a><p>"Measurements from a real telecom product showed a 1.7 speed improvement between a single and a dual core system.<p>It should be noted that it took only about a week to port the telecom system to a new OTP release with SMP support, to a new Linux distribution and to a new incompatible CPU architecture, the Erlang code was not even recompiled.<p>It took a little longer to get the telecom system in product status, a few minor changeswas needed in the Erlang code because Erlang processes now can run truly parallel which changes the timing and ordering of events which the old application code did not count for."<p>Besides the awful grammar, QED. I rest my case: Erlang, and not just Erlang OTP, is concurrent (think of it this way: spawn_link() isn't restricted to OTP). I think it's quite clear Erlang is also a functional language. Please refute with references.