Erlang is getting too big

Francesco Cesarini francesco@REDACTED
Tue Oct 14 00:15:24 CEST 2003

Finally the subject comes to light. And sadly enough, 90% of Erlang 
users are not able to defend themselves... Why? Because they are not on 
the mailing list. When they first study Erlang, they struggle to 
understand recursion. Pattern matching is some form of black magic they 
do not trust, let alone concurrency. LCs? Let's not even go there. In 
the good old days, they would attend three courses over a 6 months 
period and have all the time on this planet to learn (Ironically, when 
the language was compact). Today, if they are lucky, they might get a 5 
day course, OTP included. I work with these people on a daily basis. 
They support and maintain Erlang programs, possibly write them as well. 
Most enjoy their job, but will not go pondering day and night over 
problems and potential solutions like most of us do. At 5pm they clock 
off, and until they log on the following morning, Erlang does not even 
cross their mind. It was for these people Erlang was originally 
developed and kept simple. It was for this reason OTP was developed 
(Some parts were successful, others weren't).

Now when there are organizations supporting 20+ erlang products or 
systems consisting of millions of lines of code, these issues become 
very relevant. These people must have the chance of going into the code, 
understanding what is going on, and finding the bugs because development 
can not jump in and act as heroes all the time. After all, that is where 
70% of the cost of the software cycle is. And to reduce this cost, one 
has to stop increasing the complexity of the language. Only well thought 
and necessary additions should be included... Things that will simplify 
the code, not make it more complex.

Things such as List (In)Comprehensions are powerful if you know what you 
are doing. Parameterised modules as well if you are a hacker. But alas, 
they do not fit in the jungle of  large scale software design for which 
Erlang was intended. Concepts such as packages should have integrated in 
OTP, as OTP is there to solve these problems. A bit more throughout 
should have gone into adding records, extra guards, macros and include 
files. And a lot more thought should be put in before adding 
parametersed modules and the new type syntax are included.


More information about the erlang-questions mailing list