Why Lisp Lost

Before I begin this ad hominem attack, I should state for the record that I love lisp. There I said it, I love lisp. The parenthesis. The macros. The idiomatic special forms. I love how the language can be implemented on so many levels and still be reduced to a few expressions.

That being said, Lisp lost the hearts and minds of programmers because it is too elegant. People are basically clever monkeys with access to digital watches and a love for showing off. You can't show off if you don't have a bunch of other people to impress, who are culturally predisposed to being impressed by people who direct other people. There is no faster way to glory than taking credit for other people's efforts. Hence it is important that you also have lots of other people to take credit for helping succeed. This is the mistique of kings, generals, warlords, and presidents. We act as ifthe president can create jobs, balance the budget, and wage war. He can not legally do any of those things without an act of Congress. But that doesn't mean he does anything to discourage that misconception.

Lisp suffers a similar fate. It is not popular because lisp won't get you laid. No armies of lisp programmers are coming out of universities. No large enterprise installations get any notice in the popular trade press. Hip new startups only use it on rare occasions, and even then they rebrand theirs as something new and cool. I'm looking at you arc. It also doesn't help make for good war stories when your tech is proven, reliable, and the basis for a good deal of the mission critical tools you use every day.

But these reasons that are often cited as the reason lisp lost are not the real reason. The reason lisp lost is that cultural inertia determines our mental models. Mathematical representations have developed over hundreds of years across multiple continents, and those modes of representation are taught in school from a very young age. Look at what we teach a 10 year old to do, and that will show you what a 20 year old will find familiar in 10 years time.

Nothing prevents us from learning new modes of thought, but it is hard to combat tens of thousands of hours of mental programming we call education. This is why languages like JavaScript are so successful. It has the illusion of familiarity. If you look at most of my JavaScript of the past few weeks it looks identical to lisp. This is not an accident but an actual design goal. I know how to represent a program in Lisp. Hence I know how to evaluate it. But in effect I am undoing one cultural bias in favor of another.