Clojure
/KLOH-zher/ · noun · Development · Origin: 2007
Definitions
A modern Lisp dialect that runs on the JVM, emphasizing immutable data structures, functional programming, and a pragmatic approach to concurrency. Clojure's persistent data structures and software transactional memory make it well-suited for concurrent and data-heavy applications.
In plain English: A programming language based on Lisp that runs on Java's platform, focused on handling data safely when many things happen at once.
Example: Our data pipeline is all Clojure — immutable data everywhere means we never worry about race conditions.
Origin Story
A pun on 'closure' with J-V-M baked into the spelling
Rich Hickey spent two years developing Clojure before releasing it in 2007. He wanted a modern Lisp that ran on the JVM and emphasized immutable data structures and functional programming for safe concurrency.
The name **Clojure** is a pun on **"closure"** (a key concept in functional programming), cleverly respelled to include **C** (C#), **L** (Lisp), and **J** (Java) -- the three languages and platforms that most influenced its design. The 'j' nods to the JVM, the 'l' to Lisp heritage.
Hickey famously self-funded Clojure's development, taking time off from consulting work. His conference talks -- particularly "Simple Made Easy" and "Hammock Driven Development" -- became influential across the entire programming community, not just among Clojure users.
Coined by: Rich Hickey
Context: Independent project, 2007
Fun fact: Hickey has said that his most productive development tool is a hammock. His talk 'Hammock Driven Development' argues that the most important phase of programming happens away from the keyboard, while thinking deeply about the problem.