% Rationale for using Clojure % John Gabriele 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](http://www.infoq.com/presentations/Simple-Made-Easy) 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](http://clojure.org/rationale). Some potential **drawbacks** to using Clojure: * Clojure's license (the [EPL](http://directory.fsf.org/wiki/License:EPLv1.0)), which is also often used for many libraries in the Clojure ecosystem, is not [GPL-compatible](http://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean). * 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](index.html), there are other Clojure implementations.)