Clojure Introduction and Resources

Clojure is a relatively new (2007) programming language. It is a dialect of Lisp, designed to run on the Java Virtual Machine.

What is Lisp?

Lisp is a family of programming languages, first conceived in 1958. The name comes from "List processor," because lists are the primary data structure in the language.

There are many dialects and implementations of Lisp, the two most common (before Clojure came on the scene) were Common Lisp and Scheme.

Lisp has a long history and an interesting culture . The language treats code as data, making it highly recursive and expressive. Experienced Lisp developers can write new features, faster because of the language's power and conciseness.

What is the Java Virtual Machine?

The JVM is a virtual computer that compiles and runs Java, and other languages. JVM is an idea, not a specific piece of software — one of the most popular implementations of the JVM is HotSpot from Oracle.

The idea behind Java and the JVM is that you can write a program in Java (or another supported language), and compile it for the JVM. Then, you can run it on any computer that runs a JVM. This makes it extremely portable — you can write code once, and run it anywhere.

Clojure: Lisp on the JVM

Java is everywhere, which means that Java Virtual Machines are everywhere. Creating a version of Lisp that runs on the JVM made it possible to run Lisp anywhere. That was the primary motivation for creating Clojure, and a great reason to learn the language.

Another benefit is that Clojure provides access, via the JVM, to countless tools and third-party libraries written in Java. This gives Clojure a development ecosystem that is more powerful than those previously available to any Lisp dialect.

Clojure Tutorials

Other Resources for Learning Clojure

  • Try Clojure, is an online Clojure interpreter, letting you get some experience Clojure in the browser before installing it locally.

  • ClojureTV has video tutorials and live talks about a variety of Clojure development topics.

  • 4clojure is an interactive learning site with programing exercises in Clojure.

  • Full Disclojure is another video channel with tons of great Clojure tutorial videos.

  • A Clojure Newbie Guide is a helpful resource pointing the new Clojure developer to all the essential tools and resources that form the Clojure ecosystem.

Clojure Reference Material

  • The Clojure Style Guide is a community-written guide to best practices for writing clear, maintainable Clojure code.

  • ClojureDocs and Grimoire are both unofficial companions to the official documentation, providing community-sourced commentary and examples.

  • Clojure Cheatsheet is a quick reference page for all the little things you just have to remember.

Community and Ongoing Learning

Books about Clojure

There are a lot of books about Clojure. Here are the ones that the Clojure community recommends again and again:

Should I learn Clojure?

Probably.

It is a widely-accepted truism that every developer should learn Lisp, even though you probably won't use it. But now that the power of Lisp has been combined with the ubiquity of Java, its a language that is both good to learn and exceptionally useful.

Good Clojure developers are highly sought after and well paid, and the language is growing in popularity.

If you're looking for programming skills to set you apart from other developers, Clojure is one of the best tools to add to your kit — and to your resume.


Further Reading and Resources

We have more guides, tutorials, and infographics related to coding and development:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn?

It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"