It is a modern language. -> T.
It is a lisp. -> T.
However, I only hear, 'It is a modern dialect of lisp,' when I am being told why I should switch from Scheme or CL to Clojure.
This is a non-argument (there is no spec for what a 'modern' language includes). It also has the implication that whatever I am using is in some way non-modern. (Which is an odd attribution for something which is actively developed and I do my daily coding in). Is Java modern? How about Python? Scala? Ruby? It seems like a weird non-category. When I boot up sbcl, it isn't like i'm programming in lisp 1.5.
New would be cool, or saying it has modern features, also good.
Gonna make a new spec for Common Lisp, Common Lisp the Ancient Language.
The JVM does not bring that much new to the Lisp world. What is new in the JVM nowadays is the concurrent GC and the JIT. Lisp runtimes prefer precompiled code. What the JVM lacks for example is easy code loading (think class loading in the JVM), instruction set optimized for Lisp and dumped images.
Clojure combines STM, concurrency etc. in a clever way and with the focus on pure FP. It's not that elements of that did not exist before, but the combination in Clojure seems to be novel.
What arguments are there to say that clojure is not a modern dialect of lisp?
The JVM came about pretty recently (on the LISP timescale), software transactional memory has been around for a while but afaik no mainstream lisp-like language implements it, and so on. That all says 'modern' and 'new' to me.
I'm not versed enough in Lisp or clojure to make any statements about the macro issues.
What bugs me about clojure is on a completely different level, all those 'x done 'in clojure'' articles that really do nothing to advance the state of the art, as though doing something 'in clojure' somehow makes it worth writing about.
And then there's the 'one man show' feeling that is still very pervasive.