Clojure in the Age of Language Models
In the age of generative models, the most important skill for a developer is to be able to recognize the shape of the problem and pick the correct way to express it. What's relevant today is the ability to do high level reasoning about algorithms, data structures, and data flows within the system. Imperative programming is quickly becoming akin to writing assembly because language models are quite competent at writing code in the small, while they stumble at high level design and architecture. So it is good to learn a language that operates at a higher level, such as Clojure, which is data-centric, composes functions declaratively, and keeps code close to the shape of the problem.
Just yesterday, someone asked me why Clojure. This article is exactly the answer I wish I’d had. But more importantly, I think the first paragraph summarises my view on working with large language models. The complexity of a project still has to be managed by the engineer, since LLMs struggle to reason consistently about entire systems. The most important skill in software engineering is no longer coding itself, but finding smarter ways to manage complexity when designing solutions and architecting systems.
© Elia Scotto ⋅ RSS