Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
Why is Lisp useful?

Lisp has always stricken me as a very peculiar language... interesting in concept, but it just doesn't seem intuitive as, for instance, Java or C or C++.

Why do a lot of people actually use Lisp then?

share|improve this question

marked as duplicate by Anna Lear Dec 22 '11 at 1:57

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Emacs and Gimp have Lisp-based macro languages. One application for a Lisp-based language is therefore to write macros for these apps. –  user16764 Dec 21 '11 at 22:55
en.wikipedia.org/wiki/… –  Robert Harvey Dec 21 '11 at 23:04
-1: "just doesn't seem intuitive". Please keep your personal values out of the question. Some folks find Java unintuitive. –  S.Lott Dec 21 '11 at 23:14
@S.Lott - That's why I said it doesn't "seem" as intuitive. And thanks, Job, for the link! –  Chuck Testa Dec 21 '11 at 23:31
C++? Intuitive?!? Have you ever written a single line of code in it!?? –  SK-logic Dec 22 '11 at 8:10
show 12 more comments

5 Answers

up vote -7 down vote accepted

LISP, which stands for LISt Processing, is the second oldest programming language after FORTRAN. LISP was conceived by John McCarthy and was originally specified in 1958. Whereas newer LISP dialects have data structures like vectors and hash tables, the original specification defines lists as the only data structure. Since lists can be nested, i.e. list items can be lists again, it is possible to build tree data structures. The LISP language syntax is itself made up of lists. Expressions are written as lists, where the first element stands for the operation and the following elements are the arguments (prefix notation). Because the distinction between code and data is weaker than in other languages, this makes the language very dynamic and extensible. However, critics say that they find LISP code difficult to read because of the deep nesting of parentheses.

Because of this flexibility, extensibility and the ability to process symbols, LISP became the favored language for AI research in the 1980s and for research in computer science in general.

Many applications for a wide range of fields have been written in LISP. But despite the fact that LISP has a broad fan base and devoted and vehement supporters (see the comments below), it ranges only on place 13 with a rating of 1.175% in the TIOBE Programming Community Index which is an indicator of the popularity of programming languages (December 2011). However, you must also say in fairness that there is an enormous number of programming languages.

share|improve this answer
I got your back –  Chuck Testa Dec 21 '11 at 23:37
@Olivier Jacot-Descombes "I think it is a more intellectual, rather than practical language" Too harsh. What about Clojure and Nu? Sorry but -1 –  Chiron Dec 22 '11 at 0:10
Yeah, Lisp is just an intellectual toy, not a practical language. After all, it is known for doing things that are clearly toys and impractical -- like garbage collection, anonymous functions (lambda forms), functional programming, dynamic typing, and a system for adding compiler hooks. All academic toys, no relation to the practical world... –  Eli Barzilay Dec 22 '11 at 0:52
Oh, and "The only existing language construct is the list" -- that's bogus beyond belief. Please note that we are no longer in the 60s. (And even then Lisp had more than "only lists".) –  Eli Barzilay Dec 22 '11 at 0:53
I took your criticism seriously and completely rewrote my answer after thorough research, where I learned many things. –  Olivier Jacot-Descombes Dec 26 '11 at 19:12
show 9 more comments
  • Lisp has a simple syntax. It probably is the simplest practical syntax for a Turing-complete programming language.

  • Lisp programs are data, in the most straightforward possible sense. This makes it possible for Lisp to process and manipulate itself.

  • Lisp allows relatively straightforward creation of macros. Macros are a form of meta-programming, primarily beneficial for creating user-defined syntax and new languages. This makes Lisp a language of languages.

  • Lisp is a functional programming language, with all of the benefits thereof.

See also:

share|improve this answer
Heh, the syntax is simple, but it isn't the simplest possible. You could argue it's the simplest that is still usable, but brainfuck is both turning complete and has much simpler syntax :) –  Tikhon Jelvis Dec 22 '11 at 0:51
Note, however, that "programs are data" is true of pretty much any language. Even in C: you have the ability to manipulate C programs in C. The thing that makes Lisp more convenient is that it makes the internal representation of code available as plain data structures that reflect the parsed code -- light years more convenient for manipulating code than flat strings. –  Eli Barzilay Dec 22 '11 at 0:55
@TikhonJelvis: whitespace. –  Eli Barzilay Dec 22 '11 at 0:57
Forth syntax is even simpler (but yet very practical) –  SK-logic Dec 22 '11 at 8:15
add comment

Oh man, I don't have a concrete answer and this probably deserves to be voted down, but I would love to have a job in LISP. Once you've studied it and get LISP, there is no question. LISP is just a beautiful language.

It's a bit like asking why someone would choose to use a hammer and chisel to cut out joints in a piece of wood rather than use power tools. Some projects deserve to be crafted rather than constructed.

share|improve this answer
+1 Because of "Some projects deserve to be crafted rather than constructed" –  Chiron Dec 22 '11 at 1:20
Well, if you'd like to live in Boston, ITA Software (bought by Google) has one of the largest commercial systems (airline booking) written in Lisp -- itasoftware.com/careers/life-at-ita/… (Disclaimer: I have no affiliation with ITA -- I just think they do cool stuff) –  fearless_fool Apr 8 at 0:31
add comment

It is very good and intuitive when dealing with lists. (and if you use emacs.)

I found Lisp to be a load of brackets till I read The Little Schemer. It blew my mind, was the best programming book I have ever read. (very easy read)

share|improve this answer
add comment

Lisp is a concept, dialects are concrete implementations.

Why I would ever use Lisp?
Because there is Lisp called Clojure that runs on the JVM, has access to tons of JVM libraries, extremely powerful concurrency tools, concise programming language, nearly no syntax, Voodoo Macros system.
In Lisp you build your own programming language. In Lisp, you aren't the last Samurai, you ARE the Samurai.

You say Lisp doesn't seem intuitive as, for instance, Java or C or C++. I say Java, C and C++ aren't intuitive languages.

share|improve this answer
I'm not sure "because Clojure exists" is a very good answer. Arguably that makes LISP more attractive than before, but even before Clojure LISP was a good choice under certain circumstances. –  Bryan Oakley Dec 22 '11 at 0:45
@BryanOakley I agree with you, that is why I said "Why I would ever use Lisp?" The original poster asked why people use Lisp and I'm one of those people :) –  Chiron Dec 22 '11 at 0:58
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.