Clojure — это язык динамического программирования, ориентированный на виртуальную машину Java (и среду CLR). Он разработан как язык общего назначения, сочетающий в себе доступность и интерактивную разработку языка сценариев с эффективной и надежной инфраструктурой для многопоточного программирования. Clojure — компилируемый язык — он компилируется непосредственно в байт-код JVM, но при этом остается полностью динамическим. Каждая функция, поддерживаемая Clojure, поддерживается во время выполнения. Clojure обеспечивает легкий доступ к платформам Java с дополнительными подсказками типов и выводом типов, чтобы гарантировать, что вызовы Java могут избежать отражения.
Clojure — это диалект Lisp, разделяющий с Lisp философию кода как данных и мощную систему макросов. Clojure является преимущественно функциональным языком программирования и имеет богатый набор неизменяемых, постоянных структур данных. Когда требуется изменяемое состояние, Clojure предлагает систему программной транзакционной памяти и реактивную систему агентов, которые обеспечивают чистые, правильные, многопоточные проекты.