I don't know enough Lisp to say whether it's good or bad. It seems like everyone who has used Lisp loves it, yet the most popular languages these days are descended from C.
So what is it about Lisp that is so great and why isn't it used more? Is there anything just plain bad about Lisp (other than the incessant amount of parentheses)?
“Lisp is a programmable programming language.”
— John Foderaro, CACM, September 1991
Here’s my view:
On the surface, Lisp is a nice, simple functional programming language. There’s almost no syntax, and all the pieces fit together in logical ways.
If you dig a little deeper, read SICP, and write a metacircular evaluator, you discover two things: One, the whole interpreter (given just a few primitives) is just barely a page of code, and two, the relationship between code and data allows for elegant programming techniques.
Once you’ve fully absorbed this, it feels like other languages are set in stone when they only allow you to say a few things. Lisp can build any abstraction at all if you can define syntax and semantics for it.