The s-exp notation is actually more* programmer friendly because when you're using a decent editor you can work with code at structural level.
When I work in Clojure I'm not thinking in term of manipulating lines. I think in terms of expressions. I want to take this expression and parent it here or there, I do that. I want to factor out a piece of logic I can select the block and move it out, etc.
This also facilitates the powerful macro system where I can trivially write code that templates code for me or create DSLs to express the particular problem domain I'm working on. The whole aversion to prefix notation is incredibly superficial.
>it lacks good documentation. Most functions are documented, but badly. In particular, they lack examples; sometimes they are really tricky to use
This is simply false. There's excellent documentation available at
http://clojuredocs.org/quickref/Clojure%20Core
and
http://clojure-doc.org/articles/content.html#clojure_languag...
with lots of examples for each function, tutorials, and guides. Furthermore, there's tons of traditional documentation available in form of books.
>it's full of magic. You can feel it, but you can't really understand it without digging through the source code.
It's quite the opposite in my experience.
>I know OCaml, can read Haskell, and wrote a small library in closure. I still find it very hard do get around and very hard to learn.
I find Haskell is much more difficult to read than Clojure. Perhaps it has something to do with familiarity as opposed to any inherent difficulty?