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