I took up programming as a conscious choice last year. My choice of a starter language: Common Lisp.
Spurred by the essays of Paul Graham, I dived headfirst into "A Gentle Introduction to Common Lisp" and then proceeded to tackle "Practical Common Lisp", and then was midway through "On Lisp" before University started and I went back to more practical things.
I think it's the most beautiful language ever conceived. Dynamic, concise, extensible, yet careful and contained.
Many cite reasons why it's not used today. Some complain of the lack of a standard implementation. Others share the pain of disparate-in-design yet mutually-reliant libraries attempted to be pieced together with sticky tape.
However, it's more likely that Lisp is not used today exactly because of its beauty.
I attracts the kind of crowd that demands that Lisp stay beautiful in the way they want it to. And we know that everyone, beginners and pros alike, don't like a smug geek.
A recent tweet from Nathan Marz shows how this is displayed at the most basic level of programming:
A common trait among good programmers is an obsession with variable and function naming
And so many Lisp programs seem to be mired in snobbery. Variables are given esoteric names and functions seem to have no hierarchy. Not to mention that the types of problems tackled are not what people would "normally" do (fixity conversion anyone?).
Sure, these problems aren't restricted to Lisp, but what's uniquely Lisp is the ability to ignore them through (added) abstraction. It's an attitude unique to the community, made possible by the language.
But like most forms of snobbery, this one stems from ignorance. It's like asking a rich politician to sympathise with a worker from the slums.
Unfortunately, for Lisp to grow, Lisp either needs to look pretty, or be forced upon it's users. We've already seen the second one work with emacs. For the first, Lisp needs to become pretty like Rails is, starting with a dominant colour. (as red is to ruby)
Not to sound self-righteous, but the biggest hurdle to adoption for any language is it's ability to empower programmers like myself.
The good news is, I suspect that a single person can do this. And despite Lisp's history, that one unreasonable person may be able to do more than we'd care to imagine.
Send the PDF to all the smug Lisp geeks out there!