Tagged: programming

Feed
2026.APR.19

The Peril of Laziness Lost

Bryan Cantrill:

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. As I expanded on in my talk The Complexity of Simplicity, this is a significant undertaking—and we cannot expect LLMs that do not operate under constraints of time or load to undertake it of their own volition.

So well put. Recommended reading.

2026.APR.19

Mechanical Sympathy

Vicki Boykis:

What makes good engineers good at product design is the same thing that makes them good at engineering. They feel for the boundaries of what the code and the product allows them to do and stop at those boundaries.

Another name for being able to understand and plan for affordances, either through good product intuition, or experience, or both, in the real world is mechanical sympathy.

I agree with the assertion that agentic coding tools don't have mechanical sympathy. At least as of now; maybe the future models will overcome this (but maybe not).

2026.APR.04

Slop Is Not Necessarily the Future

Soohoon Choi:

I want to argue that AI models will write good code because of economic incentives. Good code is cheaper to generate and maintain. Competition is high between the AI models right now, and the ones that win will help developers ship reliable features fastest, which requires simple, maintainable code. Good code will prevail, not only because we want it to (though we do!), but because economic forces demand it. Markets will not reward slop in coding, in the long-term.

We're still early in the AI coding adoption curve. As the technology and competition matures, economic forces will drive AI models toward generating good, simpler, code because it will be cheaper overall.

Good food for thought. But I think this argument feels a bit of wishful thinking, given no reasonable or even plausible “why” has been offered.

I’m not saying that the models are not going to get good enough and we’re going to have slop forever — if you just trace the slope of improvement over the past year, we would in fact expect the opposite. But nobody knows, or has offered any plausible path for this.

via Simon Willison

2026.MAR.14

No More Code Reviews

Philip Su:

And — you heard it here first — we’ll one day be scared, positively petrified, to use any mission-critical software known to have allowed human interference in its codebase.

Very provocative. Put this way, it does evoke the feeling that we could very well be heading into this future.

2026.MAR.10

The Deal Is So Good

Mo Bitar:

What we do is because the deal is so damn good, we change ourselves to make that deal acceptable.

And what I've figured out now is that I'm unwilling to change myself to make that deal acceptable.

I could feel the emotions as I watched the video. Well worth the time.

2026.FEB.27

Two Beliefs About Coding Agents

Drew Breunig:

I'm lucky enough to talk to a range of developers and teams, spanning a variety of company sizes and a broad array of skill sets. From these conversations, two beliefs have emerged and solidified about coding agents and their (current) impact on coding.

Drew makes two very astute observations, both of which I endorse. The first one in particular is under-appreciated:

Most talented developers do not appreciate the impact of the intuitive knowledge they bring to their coding agent.

Coding agents are amplifiers of skills of the engineers that wield them, they are not magic beans that'll let an amateur cook up a compiler.

The second observation should be obvious to anyone who has built software products, but somehow the current mania is making people ignore it:

Most work people are sharing are incredible personal tools, but they are not capital-P products.

2025.MAR.03

APOSD vs Clean Code

This document is the result of a series of discussions, some online and some in person, held between Robert "Uncle Bob" Martin and John Ousterhout between September 2024 and February 2025.

John is the author of the book A Philosophy of Software Design (APOSD), a book that was first published in 2018. This book has been on my “to read” list for a while now—I’ve heard very good reviews for it from a lot of people.

“Uncle Bob” Martin and his 2008 book Clean Code of course need no introduction. Clean Code is one of the OG books on modern programming1.

This is an open debate between the two authors on the ideas they disagree on. And—wow, wow, wow—what a fantastic debate this is! The quality and depth of discussion is great, they both pull all the punches without holding back, and yet they are very civil throughout. I have never seen anything like this.

I mostly side with John in this debate. While I found many ideas in Clean Code to be very good—especially when I read it many many years ago as a young engineer, I’ve over time felt that it’s too dogmatic and not all that pragmatic.

This is a long read, but it’s well worth your time if you tend to geek out on the nuances of programming and low-level design.

Footnotes

  1. The Pragmatic Programmer & Code Complete being the other two books I consider in this league. Many consider Refactoring also to be part of this elite club, but I haven’t read it myself.