Oct 15, 2026

Abstraction Fatigue

It’s fashionable to say—or at least it was until recently—that AI is just the latest in the long history of programming abstractions. Us developers have always managed to climb the abstraction ladder: punched cards → assembly → C → scripting languages → frameworks. There was some resistance to each transition (were called as inefficient or inferior) and yet each ultimately got adopted because it enabled developers to build increasingly complex software.

But at the risk of repeating what everyone has said about new technology in the past, this time it really is different.

In the past, each new level of abstraction took time to permeate the developer world. Programmers got time to gradually adapt, to learn to think at a higher level, and eventually become comfortable with the new tools. Where AI differs is in the fact that it isn’t merely another layer, it’s the abstraction of abstraction itself. Traditionally, the abstraction made it easier to translate intention into implementation, but AI today automates the intention itself.

When ChatGPT first arrived, most of us used it for snippets and boilerplate. It was remarkably good at that and much better than Googling/Stack Overflow. Cursor introduced a new paradigm by bringing AI directly into the editor, giving it visibility into entire codebases and allowing developers to delegate more substantial tasks. It was impressive, but its limitations were visible as tasks grew more complex and codebases larger.

Then came Claude Code and other agentic coding tools. Suddenly, AI could navigate repositories, modify multiple files, run tests, and iterate on its own mistakes. Quite impressive but still complex tasks warranted supervision and the code some healthy suspicion.

Fast-forward to today, AI can execute astonishingly complex tasks with remarkably little supervision. As much as I’d like to deny it—and believe me, I’ve tried many times over the past three years—the bottleneck increasingly seems to be imagination rather than complexity of the task itself. That doesn’t mean we’re anywhere close to casually vibe-coding a polished alternative to Photoshop, despite what some enthusiasts would have you believe. But I can delegate an enormous part of my everyday programming with very little hand-holding.

It’s at a point where I find myself having to think at increasingly higher levels, as AI becomes capable of handling even the vaguest task and producing results that are remarkably close to what I had in mind.


These days, I deliberately throw absurdly complex tasks at AI, and I half-expect, perhaps even hope, that it will fail. Part of me wants to be reassured that my technical abilities still matter. Yet, it always succeeds, often delivering something that far exceeds my expectations.

Camoufox Rendering Issue

The biggest shock came when I shared a screenshot of a rendering issue in Camoufox to Claude Code. Despite seeing nothing but garbled characters, AI correctly identified the underlying problem. It was genuinely dumbfounding. How could it diagnose an issue from just a screenshot, without any logs, or additional context?


Inevitably, I have become more and more on Claude code for my everyday work. I do intervene. I suggest refinements, and occasionally correct its approach. But increasingly, those interventions feel like matters of taste rather than technical necessity. I’m no longer doing the difficult work. I’m reviewing someone else’s.

On one hand, I find all of this incredibly exciting. The possibilities are extraordinary. Software and complex ideas that languished in my to-do list can now be brought to life with little more than a prompt. On the other hand, I’m struggling to keep up with the pace of change and the reason is abstraction fatigue. It is the mental exhaustion of constantly having to adjust what you’ve to do as a programmer. Just when you grow comfortable with a new way of working, AI advances enough to make parts of that workflow obsolete and you’ve to delegate more stuff to keep up.

Previous generation of programmers had years, sometimes more than a decade, to adjust to a new level of abstraction. But here, it feels like I have climbed several decades’ worth of abstractions in a span of three years. And it’s not merely that AI can do these things. It’s that it can often do them better than you’d expect, sometimes better than you could have yourself.

I’m no longer sure I’m the programmer. Increasingly, I feel like a manager of a superhuman one.

It does make my job easier, and I am adjusting (I suppose), but there’s a deeply unsettling question behind all this, how many rungs are left on this ladder? And what happens to me when I get to the top?


Follow Me!

I write about things that I find interesting. If you're modestly geeky, chances are you'll find them too.

Subscribe to this blog via RSS Feed.

Don't have an RSS reader? Use Blogtrottr to get an email notification when I publish a new post.