Field Notes
The C++ Wall Just Came Down: Why Jank Matters for Real-Time Systems
A new Clojure dialect is proving that high-level functional programming and low-level system performance don't have to be mutually exclusive anymore.
Numerous Times Field Notes
Dispatches from inside the room
For decades, software development has been defined by a painful, binary choice: you either choose the developer ergonomics of high-level languages like Clojure, or you embrace the raw, metal-scraping power of C++. If you wanted a REPL-driven workflow, you accepted the overhead of the Java Virtual Machine. If you needed microsecond latency, you signed a contract with the C++ compiler and gave up your soul to manual memory management. This week, a project named Jank emerged to argue that this compromise is a relic of the past.
Jank is a native Clojure dialect built on top of LLVM, designed specifically for seamless interoperability with C++. Unlike traditional Clojure, which sits atop the JVM, or ClojureScript, which targets the JavaScript runtime, Jank lives in the same space as the world’s most demanding systems. It doesn't just talk to C++; it effectively becomes it. By treating C++ as its host rather than an external dependency, Jank allows developers to write functional, immutable code that can directly call into existing C++ libraries without the traditional performance penalty of a bridge.
This matters because the industry is hitting a wall. We are building increasingly complex systems—from autonomous vehicle sensors to high-frequency trading engines—where the safety of functional programming is desperately needed, but the performance cost of a garbage-collected virtual machine is disqualifying. Until now, we have been forced to write our logic in one language and our performance-critical components in another, creating a "two-language problem" that breeds bugs and slows down deployment. Jank attacks this head-on by providing the interactive, live-coding experience Clojure is famous for, but within a native binary environment.
The implications for the factory floor and the engineering lab are profound. We are moving toward a world where a developer can hot-reload code into a running process that is simultaneously managing high-throughput hardware interfaces. It represents a shift from "stop-and-recompile" to a continuous flow of development, even at the systems level. While the project is still maturing, the underlying architecture is a direct challenge to the status quo of systems engineering.
As we look ahead, the metric for success won't just be benchmark speeds, but adoption within the LLVM ecosystem. Watch for how Jank handles complex C++ templates and whether it can maintain its promise of "zero-cost" interop as it scales. If it succeeds, the barrier between the abstract beauty of functional programming and the brutal reality of hardware will finally vanish. We are watching the birth of a tool that refuses to choose between speed and sanity.
One essay. Every Friday. From operators who actually run things.
Join thousands of founders, partners, and operating leaders. No filler. Unsubscribe anytime.
Reader notes
0 NotesSign in to comment. Comments are signed and public.
Sign in →