Clojure, the bad first impressions
- Getting started guide on clojure.org should really point to leiningen first. It's much simpler and seems to be the standard anyway in the community.
- Syntax errors and undefined symbols gives you a 40+ lines long stack trace, that also tells you it censored 30+ more lines! A simple syntax error with line number would have been nice.
- The built in test framework gives pretty bad feedback:
expected: (= (split-with :foo [:a :b :foo :c :d]) [[:a :b] [:c :d]]) actual: (not (= [() (:a :b :foo :c :d)] [[:a :b] [:c :d]]))Seems pretty unnecessary. Midje does it better and has a more readable (and (not coincidentally I think) less lispy) style.
- REPL gives a lot of junk output that leaks the abstraction of the REPL itself:
"CompilerException java.lang.RuntimeException: Unable to resolve symbol: foo in this context, compiling:(/private/var/folders/7j/s250vtk93vj_36gy4nmwg4040000gn/T/form-init1861166276440258752.clj:1:1)"
- Clojure source code has a lot of commented out code with no explanation. This is unprofessional and makes me suspicious about the entire thing.
- Clojure java source code is formatted with an obscure bracing style. Minor thing sure, but it's hostile to potential contributors for no reason.