[erlang-questions] erlang sucks

attila.rajmund.nohl@REDACTED attila.rajmund.nohl@REDACTED
Tue Mar 11 19:25:03 CET 2008

On Tue, 11 Mar 2008, Mats Cronqvist wrote:
> more so because most of his complaints are essentially valid.
> *  the syntax does suck. for beginners, because it looks weird (i.e. not like 
> ALGOL), thus being a major obstacle to adoption. for pros, because the silly 
> separators, and the needless verbosity (lambdas, using 'receive' instead of 
> '?', etc)
> * 'if' is  completely worthless, and should ideally be obsoleted.
> * strings as lists of integers is often annoying.
> * the X1=x1(X),X2=x2(X1),,, pattern is tedious and error prone.
> * records are  "limited and verbose" (for a reason, but still)
> * some of the libs/docs are of poor quality.

There's one more thing that sometimes drive me nuts - due to the lack of
decent 'if' statement, new functions are written instead of branches of
a conditional statement. So I see a lot of code like this:
do_something(X, Y) ->
     really_do_something(X, Y).

really_do_something(a, Y) ->
     really_really_do_something(a, Y);

really_really_do_something(a, b) ->
     ... % could be a one liner

The problem is that the really_really_do_something is way to long to
type for people whose editor can't complete function names, so they'll
write rrds instead - which is very non-intuitive. I've just checked and
our code contains more than 150 functions with 3 character name, more
than 50 functions with 2 character name and more than 150 functions with
4 character name. Some of these names actually make sense (e.g. get,
set), but most of them do not - and I don't like function names that do
not make sense. I haven't seen this practice in C++ or Java projects.

"Beware of bugs in the above code; I have only proved it correct, not
  tried it."

More information about the erlang-questions mailing list