Why Clojure? Published Tue Apr 15 16:30:00 SAST 2014
Clojure solves the concurrency problems of tomorrow today with a beautiful, succinct syntax, while leveraging thousands of existing Java libraries on the JVM. It is my conviction that using Clojure-based stack is a superior technology choice for web projects going forward.
Haskell will win in the long-run, but Clojure is the pragmatic functional choice today, primarily because of its immutable, persistent memory model and access to the JVM.
Here is a list of the content that compelled me to switch to a Clojure-based tech stack for future projects.
Philosophy
- Simple Made Easy by Rich Hickey
- Are We There Yet by Rich Hickey
For more, refer to Rich Hickey's Greatest Hits.
Fundamentals
-
My Intro to Clojure slides, which are based almost entirely on Rich Hickey's 2-hour talk, Clojure for Java Programmers covers the Lisp fundamentals. Beginners can gloss over the concurrency primitives.
-
Brian Will narrates a series of highly accessible Intro to Clojure videos.
Kyle Kingsbury wrote a great series for beginners, Clojure From the Ground Up:
Tools
- Light Table is a new IDE built by Chris Granger that ships with the Clojure runtime and evaluates forms in-line.
- Leiningen is the ubiquitous build tool for Clojure.
Datomic
Datomic is a fact-based database that leverages Clojure's persistent, immutable memory model. I consider it one of the killer apps on the Clojure tech stack.
- Rich Hickey narrates a 20-minute Intro to Datomic.
- Hickey lectures on the underlying design principles behind Datomic in Deconstructing the Database.
- Stuff Happens: Fixing Bad Data in Datomic
ReactJS
ReactJS is a front-end JavaScript framework built by Facebook not directly related to Clojure.
- Watch Pete Hunt talk about ReactJS in Rethinking best practices at JSConf EU 2013
Om
Om is a ClojureScript abstraction on top of ReactJS made by David Nolan that leverages Clojure's memory model for even more performance and concision: