A Smug Geek We Abhor

too strong for sympathy, too weird for rapport, but most importantly,
a smug geek we

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.

Those who aren't fresh off the bat but don't have the wisdom to make practical judgment. Those who have finally got their head around Version Control, are getting used to a text-editor. Those who have made a few cheap hacks with python and javascript but are sick of the cut-and-paste style [1]. And probably most importantly, being able to install and serve an application from a cheap hosting provider.

Yes, this is a rant, but unless we have the equivalent of David Hannemeier Hansson come along for Lisp, it shall remain the smug geek in the corner who worships abstraction instead of creation. Until then, I'm betting on Javascript and Ruby.

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!

[1] No offence to python and javascript. I do think however that those languages are more prone to have beginner programmers, which results in the above.


comments powered by Disqus