Programming Isnât Special

Open the original

Short summary

The author argues that programmers shouldn't dismiss AI code generation as harmless just because programming is "functional" rather than "artistic" — programming is art, and using AI to eliminate mundane work destroys the practice opportunities where developers actually learn their craft. Most meaningful creative work in any field starts with doing unglamorous, paid work, and automating away those jobs prevents the skill development that leads to genuine innovation.

  • Art isn't defined by being transcendent or non-functional; most painting, music, and writing is mundane, commissioned work that serves practical purposes, yet we still call it art and respect the labor involved. Programmers are uniquely willing to dismiss their own work as "just functional" in ways writers, musicians, and artists refuse to do.
  • Code can be intentionally beautiful and aesthetically designed (like the author's Deferred abstraction for async operations), and such work tends to be socially and technologically important — but you only develop that capability through years of doing unglamorous projects that build your skill and intuition.
  • Replacing all mundane programming work with AI-generated code removes the practical training ground where most real skill development happens, eliminating the tiny but real chance that a routine project becomes someone's breakthrough moment and career-defining contribution.

Full summary

The author argues that programmers are uniquely complicit in accepting AI tools compared to other creative fields, where writers, musicians, and artists have mounted serious resistance. The key justification programmers give—that code is merely functional, not art—is wrong. The author traces this misconception to what John Berger calls "mystification": we artificially elevate painting, film, and music as transcendent while dismissing practical work as mundane. But this distinction collapses under scrutiny. Journalists do functional prose work that's no less valuable than novels; copywriters and novelists use identical skills; the gap between them is just accident and commerce. Programming fits this pattern perfectly—most code is workday functional writing, like most journalism or commercial art, but that doesn't make it not art. Code can be deliberately aesthetic, and when it is, it matters. The author's own invention of Deferred—a solution to the ugliness of passing callback parameters in asynchronous programming—was an intentional aesthetic choice that rippled through the field, influencing MochiKit.Async, jQuery Deferred, JavaScript Promises, and eventually async/await. This wasn't about function alone; it was about making the experience of using the code beautiful. Code designed with aesthetic intention tends to be technologically and socially important, even if most everyday code never reaches that level. The software industry already has some tradition of recognizing this—Abelson's principle that "programs must be written for people to read," API design philosophy, and even annual reviews of operating systems as aesthetic objects all acknowledge that software is expressive. The real problem is that programmers lack a critical reading tradition. Literate Programming gets praised but rarely practiced, and users have almost no programming literacy. Modern practices often deliberately obscure how software actually works, making it harder for people to understand what's happening. By accepting AI-generated code without the resistance seen in other creative fields, programmers are abandoning the craft aspect of their work and deepening this already-bad situation.

Ask about this article