Casey Muratori avoids using AI in programming because he values the direct, hands-on experience and deep understanding of code that comes from crafting it himself, viewing AI’s natural language interaction as an imprecise layer that distances him from this process. While he acknowledges AI’s usefulness for others and sees no inherent problem if programmers critically assess AI-generated code, his personal motivation for programming—driven by curiosity and joy rather than efficiency—leads him to prefer traditional coding methods.
Casey Muratori explains that his perspective on AI programming has remained consistent since he was first asked about it roughly a year ago, before AI tools became widely regarded as effective. He acknowledges that while some programmers claimed AI was impressive years ago, most serious programmers only began to see its usefulness around December of the previous year with certain AI releases. His main concerns about AI programming revolve around premature adoption, lack of understanding of the generated code, and potential negative impacts on security, performance, and reliability. However, he notes that these concerns are similar to those he has about inexperienced humans writing complex code, such as cryptography libraries.
Muratori clarifies that his avoidance of AI programming is not due to technical shortcomings alone. He believes that if a programmer can critically assess AI-generated code and determine its quality and productivity benefits, then using AI is not inherently problematic. He separates technical concerns from legal and ethical issues, suggesting that as long as programmers make rational decisions about AI’s output, it can be a useful tool. Nonetheless, he personally chooses not to use AI because his motivations and approach to programming differ significantly from many others.
Unlike many programmers who approach coding from a business perspective—focusing on delivering a product efficiently—Muratori programs primarily for the joy and curiosity of the craft itself. He enjoys the hands-on experience of programming, often working directly in assembly language to explore and understand low-level behaviors. This passion for the process rather than just the end product shapes his reluctance to adopt AI tools, which he feels distance him from the direct engagement he values.
He emphasizes that AI programming is not just another tool like a compiler because it involves interacting through imprecise natural language rather than precise code. This indirectness reduces the control and connection he enjoys having with the code he writes. For Muratori, programming is about the intimate experience of crafting and understanding every detail, which AI disrupts by inserting a layer of abstraction and unpredictability.
In conclusion, Casey Muratori’s avoidance of AI programming stems from his deep love for the act of programming itself rather than economic or productivity reasons. He respects that others may find AI useful and appropriate for their goals, but for him, the joy lies in direct manipulation and exploration of code. AI, by making programming less direct and more opaque, conflicts with his personal values and approach to software development.