[erlang-questions] What do you like the most about Erlang/OTP?

John-Paul Bader hukl@REDACTED
Tue Aug 28 15:07:10 CEST 2012


I think the question would be more interesting the other way around. 
What do you not like about Erlang/OTP. Here is my list:

* Inconsistencies/Missing functionality in the standard library:
   - The principle of least surprise does not apply
   - proplists:get_value(foo,[]) returns undefined
     orrdict:fetch(foo, []) throws and error.
     There are plenty of examples where similar operations in different
     modules either throw or just return undefined but never in a
     predictable way
     My favorite: calling split on a one element list throws an error
   - functions operating on lists sometimes expect the list as first
     argument, sometimes as the last argument
   - merge, explode, implode, traversing, filter, search for
     dictionaries would be nice
   - missing json parser
   - crappy http support! Its the 21st century and the web is a major
     thing by now and people want to build awesome backends with erlang
     but in terms of http erlang really is a ghetto. the supplied client
     and server modules fail at the slightest traffic blow
   - calender implementation is super weak and is missing a lot of
     functionality which I see people implementing over and over again
   - there are sooo soo many things that you could improve about the
     standard library its actually kind of sad.


* OTP Releases: for most of the use cases other than big telcos or
   banks this is far more confusing then helpful especially when
   beginning erlang. While I'm sure there are valid use cases for it
   most of the time I thought it was bloated, cumbersome, slow and error
   prone.


* No built in support / standard way for installing libraries - instead
   people have to find out about rebar themselves. Look at
   http://rubygems.org in contrast or
   https://www.ruby-toolbox.com/categories


* Lack of namespaces (duck and cover) - Actually I'd be more than happy
   with a ruby / python way of doing it but I guess that won't happen


* I also think the supplied test libraries are not that great to get
   started or to motivate anybody to test from day one


* Error messages are often not helpful. BadMatch etc could include more
   context information to spot the errors faster


There are a lot of things I like and even love about Erlang but these 
are the ones that constantly annoy me.



~ John



More information about the erlang-questions mailing list