John Carmack on the Evolution of Programming and AI
The Shift from Pragmatic Coding to 'Code-do'
John Carmack suggests that manual, line-by-line code writing is undergoing a transformation similar to the evolution of martial arts. Drawing a parallel to Musashi’s Book of Five Rings, Carmack observes that swordsmanship evolved from a battlefield necessity into a sport or historical curiosity. He posits that programming skills are following a similar trajectory: tasks that were once critical, such as hand-assembling opcodes to hex, have already become niche.
Carmack argues that AI is accelerating this trend, moving the act of writing code by hand from a "-jitsu" (a practical art/technique) to a "-do" (a way or path), which he jokingly refers to as "Code-do." In this view, while the love of retro computing and manual coding remains delightful, developers who cling to traditional methods at the expense of modern AI-driven productivity risk becoming like an "out of touch Kung Fu master" who is defeated by a more pragmatic, AI-empowered "amateur MMA fighter."
Impact on the Software Engineering Workflow
The integration of AI into the development process is shifting the focus of the software engineer from syntax and implementation details to higher-level system design.
Transition to Architectural Focus
Some developers argue that AI removes the "accidental complexity" of typing and interacting with IDEs, allowing engineers to focus on data structures, software architecture, and algorithms. By reducing the time spent on syntax and library quirks, AI enables developers to bring the mental model of a program to fruition more quickly.
The Risk of Skill Atrophy
Conversely, there is significant concern regarding the loss of foundational knowledge. Critics argue that a generation of developers who skip "learning the basics the hard way"—such as concurrency, networks, and language design—may lack the necessary depth to troubleshoot or optimize complex systems when AI-generated code fails.
Critical Perspectives and Counter-Arguments
Carmack's analogy has sparked a wide range of debate among the technical community, focusing on the nature of programming and the utility of AI.
Competition vs. Collaboration
Several critics point out that software development is a collaborative effort rather than a competitive combat sport. They argue that the purpose of programming is not merely to maximize output or "win," but to create sustainable, high-quality software.
Tooling vs. Fundamental Change
Some argue that AI is not replacing the act of coding itself, but is merely a more powerful tool—akin to a backhoe replacing a shovel. While the backhoe is more efficient for large-scale work, the shovel remains useful for precision tasks. Others suggest that the AI transition is not a replacement of the medium (like guns replacing swords), but a change in who—or what—is writing the code.
Dependency and Control
There are strategic concerns regarding the dependency on proprietary AI models. Developers have expressed a desire for "freedom" in their tools, noting that relying on proprietary agents for code generation creates a vulnerability where the provider can "pull the plug" on a critical workflow.
Quality and Economic Viability
Some skeptics remain unconvinced that AI-produced code is consistently higher in quality than human-written code, or that "burning through tokens" is more economically viable than employing skilled human engineers in the long term.
Sources
Related
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch