Hacker News new | ask | show | jobs
by silentbicycle 5579 days ago
Lisp is a great language, both in the sense that it is remarkably powerful and that it has had a long legacy. Learning Lisp will teach you new and genuinely mind-expanding ideas (e.g. continuations), much like learning C and suddenly understanding pointers. Many other languages have been strongly influenced by elements from it, because its design makes it particularly convenient for prototyping languages. After learning Lisp, a lot of "experimental" ideas in (say) Ruby really won't be all that surprising - they've already been debated for over thirty years, after all. There are also many great research papers and books about programming that use a Lisp dialect as their lingua franca. (I'd suggest learning at least enough Lisp to read Peter Norvig's _Paradigms of Artificial Intelligence Programming_, but maybe you're a tl;dr kind of person.)

Still, Lisp isn't the only language you should learn. It's not like it sits alone, atop some mountain, wrapped in golden clouds. I learned a ton about language semantics from Lisp, sure, but I've also found inspiration in Prolog (unification!), OCaml (static typing, done right! plus LOTS of good compiler texts), Erlang, Forth, K, Oz, Lua, awk, Self, and many others over the years. I also prefer a mix of Lua, C, and Erlang for real work, though I know many people that prefer Common Lisp or various Scheme dialects. (Chicken and Scheme48 are both pretty practical, imho.)

It's much like learning object-oriented programming and functional programming and constraint/logic programming and several different styles of databases and Perl and ... Each will add different approaches to your problem-solving toolkit. Lisp can comfortably accommodate many different programming models, and real experience with it will introduce you to several.