I have just joined the rest of you who read Hackers & Painters and wondered if I couldn't be more awesome at my job. The mythos of the small group of highly competent hackers using arcane technologies that place themselves years ahead of their competition is a strong selling point, but I need to separate fantasy from reality. I'm as much of a PG fanboy as anybody else, but I can't take his claims at face value.
As most hackers, I'm excited by the prospect of pushing my skills further and being as "hardcore" as I can. I don't want to end up as just another IT programmer, I want to be orders of magnitude more effective than the average coder. Because of all of the benefits listed in the book, including the ones mentioned by Eric Raymond, the idea of using a rather complex and unpopular language such as Lisp/Clojure is thus alluring. I, however, don't have any experience with either of them, and I need a seasoned opinion.
I'd love to know what those of you who learned Clojure (or perhaps another Lisp variant that is practical in 2012?) think about getting to learn the language. Was is worth it? Assuming there are tons of other things I could spend my time learning, is Clojure a good bang for my buck, if I'm primarily interested in rapid development of web-based projects in a startup environment?
Given that I have already considerable investment in the Ruby/Rails world, and that the sheer number and quality of available gems is a very strong selling point for that ecosystem, is a Lisp, once again, worth it?
Thanks for taking the time to read this!
I learned scheme some 12 years ago and have always liked it, but somehow have never felt comfortable with either clisp, elisp, or even arc (sorry PG). Clojure, on the other hand, makes me pretty happy the way scheme did. It is a joy to use, except for the jre startup time.
To put things into context, the reason I learned scheme was to be able to learn computer science without any particular language getting in the way (yes, it was a SICP course). Scheme was as close to 'no language' as it gets. It is infinitely flexible in its simplicity. Imagine, in a language where the only native data structure is a linked list, adding object-orientation without metaprogramming trickery. It's madness! Well, it's unthinkable if you look at it from an algol-derived language background at least.
So where was I. Right, noir was pretty good. For the rubyists out there, it's very much like sinatra plus haml. As a side note, when explaining lisp, I like to use html as an example of how XML is essentially a bad lisp. Seeing lisp actually being used to generate html gives me the heeby-jeebies, though, and I don't know why. I'm sure it's fine though.
Enough of the niceties, here's where crankypants grandpa programmer comes out. You preface your question with the notion that you want to learn lisp to become better at your craft, which is great. However, when it finally comes out, your question reads, "is it worth switching away from the commercial viability of my current environment?" The answer is, of course, no, as Lisp is so rarely used in the wild that it doesn't make commercial sense. My problem is that you are conflating the value of a language with the value of learning that language.
At this point, learning lisp will likely make you a better developer. But to be honest, learning any other language, or even just another framework will make you a better developer. Think of it like vision. If you look at software development through the lens of RoR, you have only one perspective. Learning python gives you a slightly different second perspective, and thus you perceive depth. The farther away the viewpoint, the better your understanding of its depth. The viewpoint from lisp just happens to be very far away.
The key word here is learning. Even if you don't use it because of limited commercial adoption, the act of learning lisp improves your skill and understanding of your craft. If you have pride in your work, then that is always worth it.