A Brief Beginner's Guide To Clojure
← prev | next →     Top-level ToC     /rationale.html     (printable version)

Here are some reasons why you might like to use Clojure:

  • elegant, mostly-minimal syntax (expressions in balanced parentheses, brackets, & braces)
  • Clojure programs run very quickly (the JVM is highly optimized).
  • The language itself is fairly simple and practical.
  • powerful language features (ex., macros, protocols, etc.)
  • excellent concurrency support
  • easy interoperability with Java, providing access to the Java standard libraries and other Java libs as well (no wrapping required)
  • cross-platform (runs wherever Java is available)
  • sharp, active, and helpful community
  • It’s a modern well-thought-out language, and it’s a lot of fun to use. :)

See also Rich Hickey’s rationale.

Some potential drawbacks to using Clojure:

  • Clojure’s license (the EPL), which is also often used for many libraries in the Clojure ecosystem, is not GPL-compatible.
  • slow program start-up time (on my desktop, ≅ 1s)
  • Error messages often leave something to be desired (long stacktraces).
  • accessing native C libs may require a little elbow grease, and you’re generally instead referred to Java-(semi-)equivalents
  • Reliance on the Java/JVM ecosystem — a drawback if this is something you’d prefer to avoid. (Though, as noted, there are other Clojure implementations.)