Greenville Java Users Group
Last modified: 2016-02-06
- No other language makes functional programming so easy. The best way to learn functional programming in Java or Scala may be to learn Clojure!
- It has arguably the best immutable collections on the JVM
- Lisp is the simplest syntax (even if parenthesis look weird at first). Using a language that's so simple exposes you to some basic truths about programming you might not otherwise notice.
- There are no operators, no precedence rules, only Functions, and functions are truly first class. If you are used to Java or C, you may be surprised the first time you pass the
+ sign as a parameter.
- Clojure has a data definition language (like JSON) built right in! Some would say that makes it not a lisp, but it's a small distinction.
- The JVM has a tremendous array of tools, utilities, and packages (jar files) that can run a web server, send email, or do just about any other task you can imagine.
- Clojure is very opinionated. Everything is immutable by default which arguably eliminates as many bugs as Java's type system.
- Clojure is fully interoperable with Java and vice versa.
Clojure's Sweet Spot
Clojure is probably the most practical JVM language for projects involving up to 7 person years of effort. If you are writing reports, working on a prototype, or just love functional programming, consider using Clojure instead of Java. Tools like Prismatic/Schema and typed Clojure may extend its usefulness far past 7 person years.
Note: Some of this has been shamelessly copied from Jeff Dik's email to the Clojure users group in 2013.
The creator of Clojure is a gifted language designer, programmer, and teacher with a knack for making complicated ideas simple. His presentations are some of the most accessible and thought provoking in the field. Check out Rich Hickey's Greatest Hits - you won't regret it!