The Lisp Curse (2011)
The curse of Lisp is not its power, elegance, flexibility, etc. The curse of Lisp is its syntax! Both &quot;all those parentheses&quot; and what they represent is the curse of Lisp.<p>Lisp forces coders to think in terms of infix trees. These trees need to be carried around in the front of the mind. This mental model is very difficult unless your mind is wired to be able to process code this way. For Lisp aficionados this either comes naturally or with coding practice. The &quot;parentheses&quot; fade into the background. For most people this wiring never comes. It remains too difficult to keep the nested trees straight in their heads. To put it colloquially, it&#x27;s too difficult to juggle all those parenthesis.<p>If you&#x27;re a Lisper you&#x27;ll want to believe that with use comes the familiarity to overcome this hurdle. It&#x27;s not. If you&#x27;re a Lisper your probably tempted to redactor a sample chunk of code into something really readable to show this isn&#x27;t the case. However, that only works in the small. It&#x27;s like code golf. It doesn&#x27;t carry over into large scale applications. Lisps mental model just won&#x27;t become second nature to very many coders.<p>Haskell forces you to juggle &quot;math.&quot; Forth forces you to juggle &quot;stacks.&quot; Lisp forces you to juggle &quot;trees.&quot; The popular Algol descendants are popular, in part, because they&#x27;re closest to the way people think. The curse of unique brains is the curse of Lisp.