Do you love learning new languages? Do you embrace new technologies and ideas like NoSQL, do your tweets look just like the ones from @hipsterhacker, but not a parody? I’m not saying that these things are bad, but I’m here to present to you a point of view I picked up while learning Common Lisp, that might make you question some of your believes about the new hot shit you read about on Hacker News all the time.
I have a question, would you ever program in a language that hasn’t changed at all since 1994? No new fancy syntax, no new language built-ins, other than new libraries, no incompatible changes for 16 years. Ugh, thats a language gone stale, you’ll think immediately. Thats what I and almost anybody who’s looked at Common Lisp recently has thought. For some reason we’ve convinced ourselves that if a language doesn’t have a new version every 6 months, its outdated.
Even if you ignore this thinking for a while, and do learn Common Lisp and go searching for libraries, you see that a library hasn’t been updated since 2009 and you go “Ugh, that library isn’t maintained”. It doesn’t matter if its good or not, you just refuse to use something that hasn’t been updated in two years. Why? Whats wrong with it? Isn’t it possible that it’s a stable and usable piece of code that doesn’t need to be patched constantly, rewritten every two years and break compatibility?
My non-scientific theory for why this is, is that we read about so many libraries, and new technologies, that the only way we can filter them is to see which one is the most recent. We don’t have time to evaluate every single language, library and framework, so we go with whats the most fashionable and recent. I guess this is a natural response. But lets take a step back just for a moment.
Lisp simply exists on a different time scale. Its 50 years old. Its outlived so many platforms,
operating systems, hardware, paradigms, methodologies, and competitors, its not even funny. The fashions of the day simply do not concern the lisp world. I believe thats one of the reasons why lisp has never become as popular as say python, a modern programmer navigates using his fashion sense, lisp requires you to look beyond that, in a very explicit manner. Maybe thats one of the reasons clojure gets so much hype, because it has a few fashion road signs to help guide the new people, maybe.
Now, i said i was going to talk about a perspective that only common lisp can give you, let me tell you about my experience. I’ve read books on common lisp written before I was born, and they are still relevant. Think about that for a moment, do you think your fancy “21 Days” book will be useful for anything beyond wiping your bum with it in 20 years? Old things don’t lose their value just because they are old in the lisp world. Things age differently here. Read old usenet articles, read old code, its valuable. I’ve read about design decisions made 30-40 years ago, and they still hold. This is amazing.
Of course this goes both ways. If I write a book on CL, or a library, its possible it will be relevant 20 years from now. Imagine if you write a small utility library, you test it, fix *all* of its bugs(because its small enough), and leave it on your website for future generations to use. Madness! Heresy!
Given lisps track record, I wouldn’t be surprised at all if it outlives Unix, the JVM, Microsoft, or Google. In fact I’m counting on Common Lisp living for a long time, thats what makes it wort using