&gt; You&#x27;re programming at the AST layer, which makes adding new semantic features (say you wanted erlang style concurrency and message passing) trivial to integrate syntactically (less trivial to implement the underlying feature).<p>To me, this hits the nail on the head, for all the wrong reasons.  Syntax isn&#x27;t the problem, implementing the feature is!<p>If I&#x27;m writing Lisp code, why do I want it to look like Erlang?  What&#x27;s wrong with it looking like Lisp?  (&quot;Erlang style concurrency and message passing&quot; is two things, syntax and functionality.  Do you want the functionality?  Fine.  You want the syntax too?  Why?)<p>In fact, this is kind of what the article is about.  People want the syntax &quot;their way&quot;; it makes it hard for others to work with their code.<p>The only time you should invent new syntax is when it is impossible (or <i>very</i> hard) to say something in the syntax you&#x27;ve got.  &quot;I don&#x27;t like it&quot; isn&#x27;t good enough.  &quot;It will save me a few keystrokes&quot; isn&#x27;t good enough.