The syntax is unremarkable, but the libraries are a pleasure to use. Everything is well organised and it fixes a few of Java's rough edges, heck even just the fact that everything has a ToString() prototype is a huge "win."
Although C#'s recent feature additions have made producing spaghetti code easier (e.g. Linq) although C# wasn't immune from that before [0].
[0] https://code.google.com/p/elmah/source/browse/src/Elmah/Stac...
The tooling makes the language tangible. paredit. eval as you write with SLIME. completion with SLIME. macros. It feels like you are working with something alive and can hold it in your hands, rather than just plain text.
Other langs get 1 or 2 of the nice tools but never all of them. The parenthesis are a chore at first, but after paredit they are an asset, ironically making it easier to write than any other syntax I've found.
Clojure is ok, but just isn't there with tooling. Also it requires project structure. Feels like a loss of freedom against the JVM as a dependency. With Common Lisp you can just open a buffer and get hacking, and outperform the JVM to boot!
I wanted to second the comments about paredit though. It's something you have to force yourself to stay with for a few days at least, after which your eyes, brain and hands are all thinking in terms of S-expressions. This'll sound funny, but I honestly think it's one of the tools that has most reduced my stress levels in my whole career. Going back to other languages, you forget just how much syntax and structure you're wading through while trying to keep track of the meaning of your code.
That's what I love about Python. I am working on a project with Python, after that I will try to explore other language and learn.
For me, I do lots of web application dev, not websites but applications which I think makes a big difference in my taste. Personally, I love using Ruby because its ecosystem lets me rapidly and succinctly build ideas and mesh together APIs and the incoherence of the web in a clean way. But I've absolutely hated the ruby experience when building number crunching programs and desktop apps, here I found python to be a much more robust solution.
For command line apps on the other hand I really like Go and C, because I hate having to wait for dynamic languages runtime to load before I can run my command. So "enjoyable" for me really does depend on the context and the problem set I'm dealing with, because lets face it if you need to do bitmask ops those fancy floating point js numbers are just going to annoy the heck out of you and you'll really wish you had that simple unsigned short :)
It's one of the few places that I really feel the magic of programming that was lost with the advent of the IDE, Java, etc.
Stack traces and the fact that nobody has yet released a decent debugger for cider are pain points. Also leiningen (package manager etc) performance is pretty crappy.
The syntax for arrays and objects is dirt simple. Lambdas are easier to implement in javascript than any other language i've tried them in (python, C++, C#), and for the most part it just seems to do what I want with minimal syntax and little BS.
I like template metaprogramming a great deal. I'd like to get so good I could be on the level of the guys who know the standards in and out, but that seems like a very difficult pursuit. :-)
In languages that aren't recreational: Python. Reads like pseudocode, whitespace-delimited is something I like, libraries when I need them.
Why? Garbage collection is a wonderful thing.
Nash, http://joday.com