Scheme is a modern Lisp dialect. It's what I program in for fun, and to learn new stuff.
Why is it so great? In a word, meta-programming. I can bend the language to my will.
For example, I have just added my own tracing to function definitions, without touching the insides of the function. Instead of using the built-in (define ...) I use my own 12-line* macro (define-with-trace ...). Now all I need to do is figure out how to redefine define.
Here is a more poetic endorsement.
* Plus 4 lines of auxiliary code.