Is LISP still useful in today's world? Which version is most used?
I try to teach myself a new programming language in regular intervals of time. Recently, I've read how Lisp and its dialects are at the complete opposite end of the spectrum from languages like C/C++, which made me curious enough to know more about it. However, two things are unclear to me, and I'm looking for guidance on them :
Is LISP still practiced/used in todays world, or is it a legacy language like FORTRAN/COBOL ? I mean, apart from maintaining existing code, is it used on new projects at all ?
What is the most widely used dialect ? I came across Scheme and Common Lisp as the 2 most prevalent dialects, and wanted your opinion as to which is the most favored/useful one to learn - and would be immensely gratified if you can suggest any resources for a rank beginner to start from.
While eager to learn a language which is fundamentally different from the procedural languages I'm used to, I don't want to invest undue effort in something if its totally obsolete - I'd still learn it if it was professionally "dead", but only with an academic perspective...
I'm very interested in this question. Every now and then when I have the time, I decide to take a stab at learning Lisp. And every time I'm thwarted by the same sort of questions and uncertainties you're asking about here. Which version of Lisp should I learn? Does anyone (besides Paul Graham) really use Lisp? Should I learn Lisp, or one of the newer functional programming languages like Haskell? What are the benefits of Lisp over Scheme, etc., etc.
I rather like Scheme, if you want to work with the JVM you should check out Clojure, which is a lisp that is designed to work in the JVM. And yes Lisp is still worth learning to see how powerful such a minimal design can be! The folks who created lisp got some things really right. Its amazing how many of the cool new features of modern languages lisp had in the 1960's!
For an embeded scheme try guile: http://www.gnu.org/s/guile/
Is there a dialect which works well with C/C++, for I'm primarily a C++ guy ? Could you also mention some resources for a rank novice, to begin learning that dialect ?
The best books to learn scheme are "The Little Schemer" and "SICP" http://mitpress.mit.edu/sicp/. There are a number of scheme implementations that can be embedded inside c/c++, but I don't really know which ones are good these days so you may have to do some googling.
I should point out that scheme is very simple! you will learn about 90% Of the language in 2 hours. Of course that doesn't mean you will have mastered it, just you will know how the syntax works.
@shan23 Scheme was designed for teaching. It could without doubt be used to teach a freshman how to program so I have no doubt you will have no problems learning it. If you want C or C++ integration, look at Guile (http://en.wikipedia.org/wiki/GNU_Guile).
Kent Dybvig's Scheme programming language book is not that famous perhaps, but is a very nice book. http://www.scheme.com/tspl4/ If you use Emacs, then learning some Lisp is handy.
Sure, Scheme is nice, but having tried to use it for real work a few times, the community just isn't there, packages aren't portable. Even though I prefer the language to CL, I ended up switching to CL for real work due to the fact that it actually has a fairly decent community, which is something to not be underestimated.