Erlang is getting too big

Kostis Sagonas kostis@REDACTED
Mon Oct 13 21:56:35 CEST 2003


On Mon, 13 Oct 2003, Sean Hinde wrote:
 >
 > I think there is and has been quite a bit of action since the bit 
 > syntax. Duplicate guards, much new syntactic sugar for record 
 > operations #rec{_ = xx}, Java style module naming, soon to be more 
 > syntactic sugar for guards, Parameterised modules.. Some of these new 
 > features have led to head scratching and questions to me from folks 
 > here learning Erlang in the last few weeks. I think we *are* in severe 
 > danger of making the core language "too big".
 > 
 > We haven't "taken anything out of the language" to add any of these 
 > things, and none of them add new capabilities to the language. All of 
 > them must be understood by anyone learning Erlang, and already they 
 > cannot all be taught in a week.

Although I sympathise with Sean's concerns to some extent, I am having
trouble sharing all his worries.  Erlang is a small language and I fail
to see why some of the "recently added features" are needed to be taught
in a course that introduces the language to developers, or scare away
people.

Some examples to illustrate my point:

   1. "Duplicate guards": There is absolutely no need to teach the old
	guards.  Simply introduce the new is_* ones!

    [In fact, this is exaclty the point where the OTP team could have
     been more agressive in issuing *warnings* about using old guards,
     so that applications would be forced to upgrade sooner... but I
     guess they want to be spared the hassle from the (paying) user
     community. This way, things could even possibly be removed from
     the language, and there would not even be a need to mention
     the existence of the old ones.]

   2. "Java style module naming"
	Is this so difficult a concept to grasp? 
	If one thinks the answer is NO, then what's the problem?
	If the answer is YES, then is there really needed for this
	concept to be mentioned to somebody who wants to find out
	what Erlang is all about?

   3. "Parameterized modules"
	This extension is not even available anywhere yet... it is
	already being taught in courses?

Is there something I am missing?

Cheers,
Kostis

PS. On Friday, I sent a mail about something I want added to the bit
    syntax, but it is still unanswered ;-)




More information about the erlang-questions mailing list