[erlang-questions] Erlang and the learning curve

Henning Diedrich hd2010@REDACTED
Tue Jan 4 17:33:34 CET 2011


On 1/4/11 12:31 PM, Morten Krogh wrote:
> As soon as you want to control memory and performance,
> functional languages can actually be much much harder. And I mean much 
> harder. 

Yes but it may matter way fewer times than you seem to imply. As has 
been pointed out that
holds only in cases where you plan to do the optimization yourself down 
to a deep level.

But inbetween, e.g. for the right list representation, you have four 
flavors in Erlang to optimze
for performance. That's more than in, say, JS or Lua where you have 
basically one. Erlang is not
religious Haskell in that regard and there are many more cases where 
Erlang opted for the practical
solution.

Also, there's at least one imperative language, Python*, where the 
mantra is that your time
is expensive, not the hardware that will provide for faster execution. 
In other words, development
time should be optimized, not execution time. So yours seems not to be 
an argument for imperative
  languages per se. Some reject that view voluntarily.

It simply depends on what you want to do. Finally, you get stuff for 
free in Erlang that you have
to code or use libraries in other languages, as results from 
share-nothing memory and micro-
processes. Think scaling on multi-core. That is really not trivial for 
other languages and where
performance-gains are coming from today. I am not sure if you are aware 
to what degree e.g.
Python, even Stackless Python simply forfeit that whole playing field 
wholesale, last time I checked.

Of course you can mimic functional or share-nothing in, e.g. C. But have 
one programmer mess
up and he can ruin everybody elses discipline with horrendous errors. In 
Erlang you simply can't.
(Or, let's say, it's way harder).

Best,
Henning


More information about the erlang-questions mailing list