[erlang-questions] erlang sucks

Mats Cronqvist mats.cronqvist@REDACTED
Tue Mar 11 13:47:27 CET 2008

Ulf Wiger wrote:
> 2008/3/10, Mats Cronqvist <mats.cronqvist@REDACTED>:
>>   Damien Katz ( of couchDB fame) has written a blog post about the warts
>>  of erlang.
>>  (http://damienkatz.net/2008/03/what_sucks_abou.html)
> There are several threads in the article (and comments) perhaps worthy
> of discussion here at EQ.
> My general impression of the article is that while I agree that the
> complaints are valid, the reader comes away from it with the distinct
> impression that Damien Katz would be content if he never had to
> touch Erlang again, despite the contention that he could fill a book
> with the things he likes about it - much like everyone now "knows"
> that Erlang sucks at file I/O, since it did in the original Wayfinder
> experiments, and it was noted in a blog article.
> So, I'm inclined to agree with Tobbe. Someone reading the article, who
> might have been interested in checking out Erlang, might well be
> persuaded not to do so. I don't think that was the author's intention.

  katz starts out like this; "...it's time to whine about my favorite 
language I use quite extensively." seems pretty clear that the problem 
is not that he is a troll, but rather that the erlang community (or at 
least certain members of it) is immature. CouchDB is a major erlang 
application, and katz should not have to take any crap from people that 
has never written a significant piece of erlang (I'm not talking about 
you, ulf!)

  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.

  clearly, none of this is particularly bothersome once you've built up 
some experience. but that doesn't mean they shouldn't be taken 
seriously, especially if Erlang is to attract coders of katz' quality. 

  so what to do? some suggestions;
  * documenting bad design patterns such as; using 'if', the "numbering 
variables" pattern etc.
  * writing a string handling lib on top of binaries
  * introducing syntax for currying and monads
  * introducing an alternative to records 
  * gen_servers with less boilerplate.

  not very ground-breaking (quite the opposite). A "Worst Practice" 
document prominently placed on the OTP home page would probably go a 
long way.

> - I'd like to try (= see someone else implement) an indentation-sensitive
>   front-end to the compiler, but perhaps ROK's suggestion that a full stop
>   can be used in place of a semicolon would cause less uproar.
  this would be truly cool. see 


p.s. just to be clear; i think the conservative approach of the OTP team 
is one of the great things about erlang. in my 10 years at ericsson, 
where I took part in deploying 1000's of erlang systems, i can not 
remember a single emulator crash (in a live system).

p.p.s. exit(1) when malloc() fails is, i think, The Right Thing(tm).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mats_cronqvist.vcf
Type: text/x-vcard
Size: 179 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080311/88c8c790/attachment.vcf>

More information about the erlang-questions mailing list