Skip to content
oliyh edited this page Feb 14, 2014 · 16 revisions

What is Clojure?

  • Clojure is an dynamic functional language which compiles to bytecode for the JVM
  • Functional programming promotes code without state or side effects which makes code simpler.
  • Clojure has a concise and powerful set of immutable data structures that are thread-safe.
  • It is a lisp, and among other benefits this allows you to treat your code as data and expand it with macros.

Running on the JVM lowers the barriers to adoption and allows interoperability between Java and Clojure code, allowing Clojure to benefit from the high performance of the JVM and retain the vast wealth of Java's ecosystem of libraries.

Although a functional language it is not 'pure' - its designers call it 'pragmatic' and allow state but it is carefully contained in a transactional model to make it thread-safe.

Read more on clojure.org.

Tooling

Leiningen is the de-facto standard tool for build and deploy: 'If you're not using Leiningen, you're doing it wrong'.

IDEs with language support include industry leaders Intellij, emacs and a new one called Light Table.

Clojure features a REPL (Read-Eval-Print Loop) which allows you to write code directly into a live environment. This is a killer feature which allows us to experiment with the language and one you will use heavily.

Work your way through the sessions to get started with the language.

  1. Session 1
  2. Session 2
  3. Session 3
  4. Session 4
  5. Session 5
  6. Session 6
  7. Session 7