Erlang is getting too big

Sean Hinde sean.hinde@REDACTED
Mon Oct 27 02:12:41 CET 2003


On Wednesday, October 15, 2003, at 03:37  pm, Kenneth Lundin wrote:

> Well I just have to comment on this.
> I don't think there are that many new features in the syntax the past 
> 4 years.

Not many, but certainly a few. I have calmed down a bit since firing 
off the original e-mail - life here has been interesting recently! I 
must also say that the more recently officially added additions have 
been pretty nice and well thought out, in contrast it seems with some 
of the earlier stuff ;-)

It is very clear that Erlang is foremost an industrial language and it 
is of course as much in your interests as ours to ensure that the 
language remains consistent, easy to learn and understand, and easy to 
write error free code in.

>
> The single most important news is in my opinion the Bit-syntax.
>
> Some of the other features referred to by Sean and others are not at 
> all part of the language yet (but some are distributed as 
> experimental).

It was not really my intent to comment on these examples specifically, 
it was to re-iterate the point that Erlang is the accumulation of all 
this stuff, both old and new, and that it seems to me that Erlang is 
now pretty much complete, warts and all.

One of the problems with the experimental stuff is that once in there 
it very quickly becomes impossible to remove - we are already seeing 
nice open source libraries being written which make heavy use of the 
packages notation.

>
> - The Java style module naming is still distributed as experimental it 
> is not supported and should not in my opinion be mentioned for 
> beginners. It might be a good idea to make it official but we have not 
> decided to do that yet.

The problem with the "don't mention to beginners" approach is that 
increasingly the first job will be to maintain someone else code, which 
by Murphys law means that this code will use exactly the set of 
features which weren't mentioned in the beginners course.

It would be very interesting to do the study of the cost benefit of any 
new language feature.

>
> - There is ONE syntactic sugar construct regarding records #rec{_ = 
> xx} added.

True, though I also had in mind the #rec{} = Var 'as' notation which is 
of course of wider scope than records, but is often used with them.

>
> - The new suggested syntactic sugar for type guards "f(I/integer) <-> 
> f(I) when integer(I) is not added to the language yet and we have not 
> decided that it will.
>
> - There are some additions regarding guards and guard BIFs.
>
> But where are the rest of the new features cluttering the language?
> Do you think this is a lot of new things over a 4 year period?

Not a lot no, but the accumulation of these plus many of the things 
being discussed would make for quite  a lot.

> I think the record syntax and semantics is something to regret. It is 
> an important feature to have structured datatypes with names on them 
> but not the way records are implemented.

Indeed, though the more recent efforts to help tidy the implementation 
and improve runtime checking and efficiency are noticed and appreciated.

> In summary I agree that we should be careful with language extensions 
> and I think that we really are.

Good, good, I just wanted to make sure amidst the clamour for more and 
more features that sense is prevailing. It might be seen by some as a 
little dull spending time on making the implementation better and 
better and faster and more fault tolerant etc, and not adding whizzy 
new stuff, but it is these aspects which are really the most 
appreciated by us at least.

Finally my mail was in part prompted by our experience for the first 
time of actually training our own Erlang programmers rather than 
stealing them from Ericsson :-). I hope that the feedback was of some 
value at least, and that you take hope from the fact that this means we 
should be buying some more licences soon..

Best Regards,

Sean




More information about the erlang-questions mailing list