Thompson’s code cuts: how eliminating lines saved software
Ken Thompson, the quiet architect of Unix, B, and Go, has delivered a startlingly simple truth: less code is almost always better.
A half-century of ruthless pruning
For over fifty years, Thompson has shaped the very foundations of software. From his pivotal role co-creating Unix at Bell Labs – a system that fundamentally shifted how we thought about computation – to his later innovations in Go, a language prized for its efficiency, he’s consistently championed minimalism. And he’s not just talking about aesthetics; he’s talking about stability, maintainability, and ultimately, the success of any project.
The anecdote, now circulating online, details a particularly productive day where Thompson reportedly slashed 1,000 lines of code. It’s a provocative statement, one that challenges the prevailing narrative of ever-increasing complexity in software development. He wasn’t discarding functionality; he was meticulously removing redundancy, streamlining processes, and leaving the underlying systems leaner and more robust.

The debt of complexity
Thompson’s philosophy isn’t merely a stylistic preference. It’s rooted in the very real consequences of unchecked growth. As systems balloon in size, technical debt accumulates – a silent, corrosive force that can cripple future development. Every added line represents a potential bug, a new area for vulnerability, and a complication for future modifications. It’s a slow-burning crisis that can derail even the most ambitious projects.
The recent viral graphic illustrating professions most vulnerable to AI-driven automation highlights this trend. But Thompson’s lesson transcends specific job titles. It’s a fundamental principle of good engineering: prioritize clarity and efficiency above all else. He argues that the act of removing code is often more productive than writing new features – demanding a deeper understanding of the system’s core and the courage to discard what’s superfluous.

Go’s legacy: simplicity’s triumph
Thompson’s influence extends to Go, a language deliberately designed to mirror this principle. Unlike the verbose syntax of C++ or Java, Go’s elegance stems from its deliberate simplicity. Every element not present in the language is a burden the programmer must manage. This stands in stark contrast to current industry practices, where productivity is often measured by lines of code written – a metric that frequently ignores the cost of accumulating technical debt.
“Solo hay dos tipos de lenguajes de programación: aquellos de los que la gente se queja y aquellos que nadie usa,” Bjarne Stroustrup, the creator of C++, once famously stated. Thompson’s approach – prioritizing clarity and minimizing complexity – echoes this sentiment. It’s a demanding philosophy, requiring a profound understanding of the system and the discipline to resist the urge to simply add more.
Ultimately, Thompson’s legacy isn’t about building complex systems; it’s about demonstrating that sometimes, the smartest thing you can do is to simply strip them down.
