Take the 2-minute tour ×

I am a pretty experienced Ruby, Objective C, and Java programmer and I was watching a video on emacs (because I have been using Vi) and noticed that it is also a LISP interpreter. That spiked my interest, and brought up an interesting question: For someone that knows modern high level languages such as Ruby, Java ,and Objective C, is there any practical benefit to learning LISP? Would I gain anything by setting aside some time to learn LISP or not? I would like to hear what you guys have to say. Thanks.

share|improve this question

4 Answers 4

up vote 9 down vote accepted

There are definitely benefits to learning a language built on a different paradigm from the one you are used to (which I note are merely object oriented with strong imperative roots). LISP is the granddaddy of functional languages (one of my favourites, Scheme, is a LISP dialect).

Besides widening your horizons, functional languages and constructs are highly likely to grow further in importance as a reasonably straightforward way of using multi-core hardware efficiently.

LISP as such might not be my recommendation to start with, since it's enormously fragmented: on the other hand, there's a lot of history, and you can make use of it directly if you plan on moving to Emacs.

share|improve this answer

Lisp, in a sense, is the logical extension of von Neumann's revelation that "code is data is code".

The things figured out in Lisp before 82 or so are still working their way into mainstream programming languages like C# and Python. Due to the reasonably uniform Lisp syntax, they probably won't ever get all the way in with the ease of using them in Lisp.

Things like:

  • dynamic typing -- Possibly a Lisp invention, possibly smalltalk. Not sure.
  • object orientation -- mooched from Smalltalk by Lisp I think
  • reflection -- C# just got this one
  • DSLs in-language -- hello Linq.
  • macros -- a few ultra-researchy languages have these now besides Lisp
  • compilation in the interpreter -- never heard of other languages having this one

And other stuff I can't think up on the fly.

share|improve this answer
Very good answer here. I hope people get to see it. –  Chuck Nov 3 '10 at 17:18
Boo has semantic macros, and is more pragmatic than it is researchy. –  JasonTrue May 16 '11 at 17:31

I suggest you get hold of a good Lisp book (they abound on the web) and try some Lisp yourself. You will be amazed to find that this 50 year old language is so "modern" and in some respect, way ahead of other "modern" languages. (For instance, find out why Lisp is called the programmable programming language). If you are too lazy to actually try some Lisp code yourself, read this and this.

share|improve this answer

Watch some of these: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

Learning Lisp per se isn't particularly practical, but it will make you a better programmer as you can apply the understanding you gain to languages you think you already know.

share|improve this answer

Your Answer


