typestar

Languages

Clojure

A Lisp dialect built on immutable data structures, running on the Java virtual machine.

Practice Clojure

27 steps across 1 tours, from the basics to complete programs.

The tours

First released
2007
Created by
Rich Hickey
Typing
Dynamic and strong; values are immutable, everything is data
Snippets target
1.12
File extensions
.clj, .cljs, .cljc, .edn

What it is for

Clojure is what happened when a Lisp took the JVM seriously: Nubank runs Latin America's largest digital bank on it, Walmart's receipt pipeline and Netflix's analytics lean on it, and ClojureScript compiles the same language to JavaScript for the front end. Any Java library is a direct interop call away, so the ecosystem was enormous on day one.

The signature idea is immutable persistent data structures as the default: vectors, maps, and sets that 'change' by cheaply sharing structure with their past. Most programs are pipelines of map, filter, and reduce threaded with the -> macros, and state that genuinely must change lives in an atom you update with a pure function. It is the design that made 'value-oriented programming' a phrase other communities now use.

Being a Lisp, code is data here too — but Clojure spends that power differently than its ancestors: less on macros, more on treating every problem as plain maps and keywords you can inspect at the REPL. The workflow is famously interactive — evaluate a form, poke the running system, build up the program from inside — and the EDN data notation the language is written in doubles as its answer to JSON.

Where it came from

Rich Hickey spent two self-funded years writing Clojure and released it in 2007 with a design rationale most languages never get: a Lisp, but with immutability as the default, seamless JVM hosting, and literal syntax for maps and vectors, not just lists. Early adopters arrived through his talks — 'Simple Made Easy' became required watching well beyond the community.

ClojureScript (2011) retargeted the language at JavaScript, and the 2010s built the tooling identity: Leiningen then deps.edn, the REPL-driven editors, and spec for describing data. Datomic, Hickey's database built on the same immutable-value ideas, showed the philosophy scaling to infrastructure.

The language settled into deliberate stability — releases are small, breaking changes are near taboo, and code from 2010 still runs. Nubank's 2020 acquisition of Cognitect, the company behind the language, put a bank's weight behind its stewardship, and Clojure remains the most widely deployed Lisp in industry.

What it is like to type

Clojure typing is Lisp cadence with richer brackets: parens for calls, square for vectors, curly for maps, #{} for sets, and the pairs inside a map literal keep no commas. Keywords start with a colon and appear constantly — as keys, as functions, in :keys destructuring — and the threading arrows -> and ->> start many lines. Hyphenated kebab-case names mean the minus key never rests.

Practice Clojure

27 steps across 1 tours, from the basics to complete programs.

Official documentation

Other languages