Clojure
Rich Hickey’s dynamic Lisp, described on its own site as compiled yet fully dynamic — every feature available at runtime — and built around a small set of commitments: immutable persistent data structures safe to share between threads, software transactional memory for coordinated state change without hand-written locks, functions as values with recursion preferred over side-effecting loops, code-as-data with macros, runtime polymorphism through protocols and datatypes, and a REPL-driven workflow. It is a hosted-language by design: JVM, CLR and JavaScript (ClojureScript), sharing the host’s type system, garbage collection and threads, with direct Java interop and optional type hints. Nubank acquired Cognitect in 2020 and funds development; Clojure/Conj is the community event.
T1 — first-party, and written to persuade. Authoritative on the design commitments, silent on what they cost.
The bet
Clojure’s answer to concurrency is to make the question smaller. If values cannot change, sharing them across threads is safe with no mechanism at all, and only the small remainder — coordinated change — needs STM. Compare the corpus’s other answers (concurrency-model): go schedules cheap tasks, elixir isolates them, rust proves the sharing correct at compile time. Clojure removes the sharing hazard from the data model itself and leaves scheduling to the host.
Being hosted is the second bet and the more unusual one. It gives up control of the runtime — pause behaviour, startup, deployment shape all belong to the JVM — in exchange for its libraries and its maturity, and it is why Clojure could target the CLR and JavaScript without redesigning the language.
Code-as-data is the claim with the longest reach and the least evidence here. Macros let a program extend the language, which is either the deepest feature in the corpus or an invitation to dialects per codebase, depending on who is describing it. A front page will not settle that, and this spoke has nothing else on it yet.
Related
programming-language · hosted-language · concurrency-model · design-patterns · elixir · language-governance · synthesis