Spokes.wiki Search About
Software Application source ↗ source url updated Sun Jul 19 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

jank

jank is a Clojure dialect that keeps Clojure’s syntax and semantics but swaps the JVM and Java interop for native code and C++ interop. Made by jeaye-wilkerson (funded by sponsors including Clojurists Together and Nubank), it targets the C++ ecosystem: the pitch is “the functional programming language for C++,” letting existing Clojure code mostly carry over via :jank reader conditionals while reaching directly into C++.

How it compiles

jank compiles to C++ and runs it two ways — the dev-vs-ship split the toolchain corner next door keeps seeing (dart‘s JIT-for-iteration / AOT-for-release):

  • LLVM-based JIT compiles C++ on the fly, which is what makes the interactive, REPL-driven Clojure dev loop work on a native backend.
  • AOT compilation produces “instantaneous”-startup, compact native binaries to ship.

C++ interop is the whole point

Where Clojure reaches Java, jank reaches C++ directly: include C++ headers, call into C++ libraries, and use templates, virtual functions, exceptions, and RAII without a bridge layer or marshalling. “Compiles to C++” (rather than binding to it) is the mechanism that removes the bridge layer. It keeps Clojure ecosystem habits (Leiningen for projects).

Where it sits

jank is a third language-toolchain page beside dart and kotlin, but a new shape in the corner. Dart and Kotlin are original languages built “target everything”; jank is a host-swap of an existing language — Clojure’s semantics re-hosted from JVM/Java-interop onto C++/native. That’s the “change the host language” lever raised from a compiler to a whole language runtime: same source language, different substrate underneath. Its JIT-plus-AOT design is the clean dev-vs-ship compilation trade; its interop-target choice (C++ instead of the JVM) is the axis Kotlin (JVM/native/JS/Wasm) and Dart (native/JS/Wasm) draw differently.

Cross-spoke: jank pitches game development — functional, immutable data with direct C++ performance and no marshalling — the same “language toolchain as substrate under a vertical” reach Dart has via Flame/Flutter (game-engines-wiki). Ownership: an independent maker funded by community sponsors, another non-big-tech data point beside openapi-tools rather than the Microsoft/Google/Epic pattern.

Status & tier

First-party project homepage — T1 under the tier ladder (primary), and the body of the page is promotional and self-reported. The frontmatter said T1 while this line said T2; the mismatch is resolved here in favour of the ladder, on the same 2026-08-05 policy that regraded the other official language sites. jank is emerging rather than mature, and claims like “instantaneous” startup and seamless interop are the project’s own — a neutral benchmark or a roadmap source would raise confidence.

clojure · hosted-language · programming-language · jeaye-wilkerson · dart · kotlin · memory-management-model · synthesis