The thing that I like most about Lisp (and Smalltalk) systems, is that they feel alive. You can easily probe & modify Lisp systems while they are running.
If this sounds mysterious, start Emacs, and type some Lisp code. Type C-M-x
and voilà! You just changed Emacs from within Emacs. You can go on and redefine all Emacs functions while it is running.
Another thing is that the code = list equivalence make the frontier between code and data very thin. And thanks to macros, it is very easy to extend the language and make quick DSLs.
For instance, it is possible to code a basic HTML builder with which the code is very close to the produced HTML output:
(html
(head
(title "The Title"))
(body
(h1 "The Headline" :class "headline")
(p "Some text here" :id "content")))
=>
The title
The Headline
Some text here
In the Lisp code, auto indentation make the code look like the output, except there aren't any closing tags.