The Virtue of Laziness in an AI-Driven World: Reflections from the Pragmatic Summit

From Xtcworld, the free encyclopedia of technology

Insights from the Pragmatic Summit

Earlier this year, I had the opportunity to attend the first-ever Pragmatic Summit. During the event, host Gergely Orosz conducted a stage interview with Kent Beck and me. The conversation, which runs about half an hour, is available online and covers a range of timely topics.

The Virtue of Laziness in an AI-Driven World: Reflections from the Pragmatic Summit
Source: martinfowler.com

Naturally, artificial intelligence dominated much of our discussion. We compared this latest technological shift to earlier revolutions—such as the rise of object-oriented programming or the web—and examined how agile methods have evolved. We also touched on the role of Test-Driven Development (TDD) in modern workflows, the dangers of unhealthy performance metrics, and strategies for thriving in an industry that is increasingly AI-native. The exchange felt both candid and insightful, a blend of nostalgia for past challenges and excitement for what lies ahead.

The Three Virtues of a Programmer: Laziness at the Core

Outside the summit, I've been reflecting on a classic idea from programming lore. Perl was a language I used sparingly and never grew to love, but its definitive book—written by its creator, Larry Wall—contains a gem that has stuck with me: the three virtues of a programmer are hubris, impatience, and above all, laziness.

This concept is echoed by Bryan Cantrill, who has often celebrated what he calls the most profound of these virtues:

Of these virtues, I have always found laziness to be the most profound: packed within its tongue-in-cheek self-deprecation is a commentary on not just the need for abstraction, but the aesthetics of it. Laziness drives us to make the system as simple as possible (but no simpler!)—to develop the powerful abstractions that then allow us to do much more, much more easily. Of course, the implicit wink here is that it takes a lot of work to be lazy.

Understanding how to think about a problem domain by building abstractions (models) is my favorite part of programming. I love it because it gives me a deeper grasp of the domain, and because once I find a good set of abstractions, I get a buzz from how they make difficulties melt away. With the right model, I can achieve far more functionality with far fewer lines of code.

The Threat of AI to the Virtue of Laziness

Cantrill worries that AI is so good at writing code that we risk losing the virtue of laziness. This concern is reinforced by what he calls “brogrammers” bragging about producing thirty-seven thousand lines of code a day—a perverse vanity metric.

The problem is that LLMs inherently lack the virtue of laziness. Work costs nothing to an LLM. LLMs do not feel a need to optimize for their own (or anyone’s) future time, and will happily dump more and more onto a layercake of garbage. Left unchecked, LLMs will make systems larger, not better—appealing to perverse vanity metrics, perhaps, but at the cost of everything that matters. As such, LLMs highlight how essential our human laziness is: our finite time forces us to develop crisp abstractions in part because we don’t want to waste our (human!) time on the consequences of clunky ones. The best engineering is always borne of constraints, and the constraint of our time places limits on the cognitive load of the system that we’re willing to accept. This is what drives us to make the system simpler, despite its essential complexity.

The Virtue of Laziness in an AI-Driven World: Reflections from the Pragmatic Summit
Source: martinfowler.com

Applying Laziness: A Sunday Evening Project

This reflection particularly struck me one Sunday evening. I had been working on a small personal project: modifying how my music playlist generator worked. Instead of hacking together a quick fix that would require constant manual adjustments, I stopped and asked myself: What’s the simplest abstraction that will make this problem disappear?

I ended up spending an hour sketching out a model that captured the core logic of playlist creation—genre preferences, mood weighting, and rotation rules—without hard-coding any of it. The result was cleaner, more maintainable code that not only solved my immediate need but also made future tweaks trivial. It was a small victory for laziness in the best sense: a bit of upfront work that saved me countless future hours.

Embracing Human Laziness in an AI Era

The lessons from the Pragmatic Summit, combined with Cantrill’s warnings, reinforce a crucial point: as AI tools become more powerful, we must double down on the uniquely human virtue of laziness. Our finite time and cognitive limits are not weaknesses—they are the drivers of elegant design. In a world where machines can churn out code endlessly, our ability to step back, think deeply, and build clean abstractions is more valuable than ever.

If you’re interested in watching the full interview, check out the Pragmatic Summit video. And next time you write code, remember: laziness isn’t a flaw—it’s a superpower.