<br><br><div class="gmail_quote">On 18 October 2011 11:07, Håkan Huss <span dir="ltr"><<a href="mailto:huss01@gmail.com">huss01@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Oct 18, 2011 at 11:07, Tim Watson <<a href="mailto:watson.timothy@gmail.com">watson.timothy@gmail.com</a>> wrote:<br>
>><br>
>> Is the Erlang language itself still evolving? The reason I ask is that the<br>
>> fellow that did CouchDB posted a blog entry about the things he encountered<br>
>> while developing CouchDB. What was interesting to me is how, even after a<br>
>> short time with the language, many of the issues he mentioned immediately<br>
>> rang true with me. For example, what is the benefit of the "; , ."<br>
>> terminators as opposed to a single terminator approach?<br>
>><br>
><br>
> Whilst the core syntax of the language is unlikely to change in the near<br>
> future, many new language features are appearing all the time! The "; , ."<br>
> thing got me for a little while, as coming from Python and OCaml I was used<br>
> to indentation and block termination keywords (e.g., "end") and of course<br>
> the C-like languages that use only ";" everywhere.<br>
<br>
</div>Well, saying that C-like languages use ";" everywhere is a slight<br>
over-simplification. The C standard lists the following punctuators:<br>
<br>
[ ]  ( )  { }  .  -><br>
++  --  &  *  +  -  ~  !<br>
/  %  <<  >>  <  >  <=  >=  ==  !=  ^  |  &&  ||<br>
?  :  ;  ...<br>
=  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=<br>
,  #  ##<br>
<: :>  <% %>  %:  %:%:<br>
<br>
Even if we only look at expression/statement separators, the list<br>
would need to include ";" (which is a terminator in most cases, but a<br>
separator in for loop heads), "," (which is used as a separator, but<br>
can be used as a terminator in initializations of e.g., arrays), "?"<br>
and ":" (which are used as separators in a very specific case), "\n"<br>
(which is significant as a terminator in macro definitions) and of<br>
course {} (which are used for grouping except when they are actually<br>
mandated by syntax whether they group something or not, and which may<br>
or may not negate the need for a terminating ";").<br>
<br>
To say that C-like languages have simple punctuation is wrong.<br>
(Believe me, I have taught C to students who have no experience with<br>
C-like languages.) You may be used to that punctuation so it feels<br>
natural to you, but simple it is not.<br>
<br>
With regards to Erlang I have taught Erlang to beginners as well, so I<br>
know that it is confusing in Erlang as well. But I do not feel it is<br>
harder to learn in Erlang than in C-like languages.<br><br></blockquote><div><br></div><div>I totally agree, it is not simple in C but as you say, very familiar. I wasn't trying to say that Erlang syntax is hard, just unfamiliar but once I learned it I actually now find it totally intuitive.</div>
<div> </div></div><br>