Grant me the serenity to accept the bad code i shouldn't fix, the courage to change the code I can, and the wisdom to know the difference.
And I think there is a place for perl, just like there is a place for bash one-liners.
The authors example is personal software. The things we write to scratch our own little itches, that do not need to be shared or developed together with other people.
If vibe code is not production code than you are just "reading" your fathers playboy magazines "for the articles" and creating tech debt you or nobody else can maintain.
If you read between the lines there I think vibe coding is a very "generous gesture" towards the folks "doing this"
Also the article bugs me referring to programming paradigms like visual basic as "equivalent to" vibe coding. That is factually incorrect and should be stricken from the record.
The programs I've taken apart and looked at, even ones running in real industrial settings and large corporate factories, 90% of them are terrible.
Most code is just 'Today's Task.' The people who deny this are probably those working at IT service companies, because they build around maintainability and scalability.
But as you go down into hardware, there's an additional pressure: 'We don't know when this hardware will reach end-of-life.' The centaur metaphor is a simplified dichotomy. 'Centaur is good, reverse-centaur is bad.' But in reality, the vast majority of programs end up as disposable one-off code.
These days, AI related articles just seem to amplify whatever values people want to believe, turning into tribal warfare posts. Realistically speaking, you can write maintainable code with AI too. In fact, the 'Canonization' mentioned in this post is essentially pattern-templating, which AI does better.
The fundamental problem with AI code is that as the input prompt gets deeper, it introduces enterprise level complexity rather than the depth the program actually needs. I don't think that's the core issue here.
The advantage of human written code is that it can be complex when it needs to be and simple when it doesn't, but AI code tries to apply the same level of complexity everywhere. Honestly, the most widely used things in the world are CRUD, and I don't think they require that much complexity.
A good programmer applies the right level of complexity to the situation.
Even human written code leaks abstractions depending on requirements.
Take ORM as an example. Can you see the query count? Is there a rule to prevent N+1? Conditions like these keep getting added. It's just a matter of explicitly adding a layer to handle them.
These days, I see a lot of AI articles filled with nostalgia about how things were different in the past, and it catches me off guard. I'm not sure if that's really how Western programming culture was, or if where I am, the vast majority of work has always been just 'get it done.'
In my opinion, good programming is about choosing the right level of complexity based on the code's expected lifespan, likelihood of change, cost of failure, and transferability. I don't think everything needs to be maintainable.
I'm not sure that this is the only way, just the way that selfish, sloppy, or impatient actors within business often work. If more wealth is created, more efficiencies found, more problems fixed, new jobs created, these would also bring the returns desired.
Chris Trottier, one of the designers of The Sims and The Sims Online, called the method "Design by Accretion" and "Tuned Emergence" in an interview with the Armchair Empire that I republished on my old blog.
Her description: The Sims and SimCity were incrementally assembled out of "a mass of separate components", like a planet forming out of a cloud of dust -- they had to reach critical mass before tuning could even begin.
Before it was tuned, The Sims was known inside the company, not very affectionately, as "the toilet game", because there wasn't much else to do. SimCity 2000 wasn't fun until six weeks before it shipped.
The Sims didn't come together until a couple of months before ship. In her words: "Being involved in that tuning process, and seeing the game take shape from what had previously been a mass of separate components, was one of the most powerful experiences of my career."
https://web.archive.org/web/20110408034710/https://www.donho...
Original interview:
https://web.archive.org/web/20111211182436/http://www.armcha...
The hard part wasn't the code -- it was explaining to EA not to panic. By every rule in EA's playbook the toilet game would never work, and it took Will Wright's tremendous stamina to keep it from being cancelled. Here's a screen recording of the actual June 1998 "Sims Steering Committee" build we showed EA to buy another year and a half -- bathtubs placeable on hills, placeholder pie menus, Archie Bunker permanently holding a burning cigar:
https://www.youtube.com/watch?v=zC52jE60KjY
The distinction Kontorovich/Elliott-McCrea call "canonization" is what Chris called tuned emergence: the late, undervalued pass that turns an accreted mass into a coherent system.
What made The Sims accretive rather than disposable wasn't visible in the code mid-accretion -- it was that the tuning pass was a committed part of the method, held by people with the authority and stamina to protect it.
Which suggests the real question to ask about any AI-generated pile of working fragments isn't "is this slop?" but "who is signed up to tune it, and will management hold its nerve until they do?"
A toilet game with a Will Wright becomes the best-selling PC game of all time. A toilet game without one stays a toilet.
I think this kind of work is constantly misunderstood and undervalued. I don't really see it as a binary thing, more like a complex skill that most people are terrible at, some are good at, and a handful of giants use to be just ridiculously productive in their field.
It reminds me of hedgehogs and foxes - foxes tend to be bad at making one off progress on their own, but are critical for accretive work.
Also I was reading a textbook the other day and thinking wow, it is absurd how much more valuable these things can be than other resources, and it's exactly because they canonize. It would be a massive loss if they stop getting written.
Fantastic
I find these neologisms helpful as they quite precisely capture the intended meaning and are easy to remember. Doctorow is an impressive and entertaining communicator, and being an author he needs to market himself and his work, so fair play to him for trying to score a hit follow up to "enshittification".
The earliest use of "centaur" in this sort of context I know of is Kasparov's advanced chess idea from the late 1990s: "a bad (chess) player with a good computer program will always beat a good player with a bad program". How far we travelled since then...
Centaur + no Canonization -> personal infrastructure, MVPs. probably ever-accruing tech debt, but the scale is limited so it probably doesn't matter
Centaur + Canonization -> libre software, companies with empowered employees. The Canonization process is going to have some differences now that the goal now includes consumption by an LLM.
Reverse Centaur + no Canonization -> Ever accruing tech debt, eventually leading to a situation where nobody understands how the "magic box" works and everyone is powerless to fix it when it breaks down (tech debt accrues to a level where an LLM can no longer achieve the desired results)
Reverse Centaur + Canonization -> It's certainly possible to have an automated process that distills and compresses knowledge at one stage into a succinct representation that can be used down the line. The open question is whether a company could arrive at this with disempowered reverse centaurs, or whether they're doomed to the previous option
Enumerating those 4 quadrants, I don't think I'm even doing a good job capturing where I had thought the article was going to go. But I'm having a hard time getting it back now.
Most of the time he comes off as an objective thinker, but those are really discounted by moments where his own dogma leads him down a path of making weakly supported points that seem like they come more from a place of anger.
The core truth of it is that a massive amount, possibly most, of the world's software is not a carefully hand-crafted application in that lives in Github written by expert software developers. It's a heap of Excel functions in an XSLX file, with no tests, no source control, no PRs, and no real planning behind it. And it works for that one specific task that the person who built it needed at the time.
AI vibe-coding is probably filling in the middle-ground between that stuff and 'real' code - it does more than just building somehting to complete today's task, and it is accretive in the sense that someone can build on top of it, but it doesn't really look that way to someone used to working on 'proper' software.
[1] Further reading if you're interested - https://news.ycombinator.com/item?id=27048672
The value you can extract from a tool depends on your skill in using it, and knowing when not using it.
I think the main argument that the billions spent are not going to be recouped is accurate, but I strongly suspect the cost of producing high quality code will remain the same -just being produced faster (speed, cost, quality - you still only get to pick two)
If one Steve Yegge can burn tokens in “Gas Town” that cost as much as me and ten others then you have saved my salary but spent it on Steve’s token use for roughly the same code quality as me steve and ten others would have produced in three months - just it took steve three days
Same price, faster delivery. Is that a win ? I suspect that facebooks recent announcement (“we cannot think of enough things to do with software so who wants our GPUs?” Might suggest that it’s a business model problem more than a software probkem
Well, It's really early in the morning and I've got the quote of the day already
There's overlap with ideas like modularity and decoupling, but the emphasis is different, it shouldn't lead people into architecture-astronautics or trying to be vicariously immoral through their work.
I found an excellent way to avoid premature abstraction and optimization and to write better software in general was to explicitly consider v1.x a throw-away.
Build something expedient that works well enough to deploy in the field, get actual user feedback and system metrics (e.g., where are the actual bottlenecks). Do a few iterations on user feedback and system metrics. NOW, you are much further down the road to a true final spec, and you can use that real information to design the real system to scale up on.
One Test Is Worth A Thousand Opinions.
This plan first tests your ideas against the real world of users, hardware, and data flows, and keeps a lot of technical debt out of the scaling system.
I discovered it a bit by accident, having previously been really big on early abstraction and planning, but sort of having to do this in one startup, and it was a real eye-opener how well it worked.
These AI companies have stumbled upon the new cigarette. Did you know athletes in the 1920s would smoke cigarettes because they thought it improved performance? Cigarettes are just a tool, right? Of course, we could never be as stupid as they were...
It does have its flaws, that you've pointed out - there's no good way to write tests, I'm not aware of any good way to have any sort of source control, and modularity is basically non-existent.
But, damn - if I have a bunch of data I need to go through and/or present, Sheets is usually my go-to. I genuinely love it when my spouse asks me to troubleshoot some Sheets stuff for her.
https://news.ycombinator.com/item?id=26668885
>Spreadsheet certainly are visual programming languages: by any measure, by far one of the most common most widely used types of visual programming languages in the world.
He has a negative take on a lot of the business practices around AI and tech. While he is consistently harsh on that front, I don't find it to be weakly supported at all, especially when you realize his criticism is focused on business and implementation, not the tech.
It's mostly about why some people enjoy working with AI ("I get to build things I can use, that I couldn't build otherwise!)" and others don't ("This code is all slop and nobody understands it, and it makes me sad")
It touches a little bit about those two perspectives in general, which he calls centaurs (in charge of the work) and reverse centaurs (the work is in charge of them)
To me 'accretive work' means something you do at a lower level than your task at hand which by itself doesn't count progress, but rather lay the groundwork for it so it's compounding from there on. AI has nothing to do with this.
Some commentators are unknown for good reason, or otherwise not worth the effort to get to know. Cory Doctorow is not one of those.
A builder is not addicted to their tools, but he won't certainly start a project without them, if they are available. Yet, he could work without some of them. Give a circular saw to someone that can't use it, and nothing good comes out of it. Give AI to a non coder, and nothing good (that lasts) will come out of it.
Who would have ever predicted that??!
A blog post loosely summarized as "HEY REMEMBER WHEN I COINED THAT TERM HERE ARE THE LINKS TO ALL THE TIMES I USED THE TERM AND HERES A NEW ANECODOTE ABOUT THE TERM" screams that its trying to force the use, and therefore the posters relevance.
- on the one hand, time-to-market is super important. Getting to the right place faster is obviously better.
- on the other hand, figuring out right product/right fit is hard, and if a business spends that much cost every 3 days chasing every idea (most of which may be bad ideas), they’ve probably wasted a lot of money.
Obviously token costs are cheaper than developers, and local models would reduce costs still further. But the thought I keep coming to is: maybe there’s a benefit to slowing down and not jumping to implement?
I usually hear the opposite side (better to implement 10 things and throw out 9 of them, easier to react to prototypes, etc.). But I also think the infinity of possible ideas doesn’t get smaller when you throw more engineers or compute at it. You just end up exploring more, possibly bad ideas. This works out if exploring more of the space builds a greater understanding of the problem and increases the likelihood that one of your choices pans out. But the cost of exploring the space isn’t $0 and 0 time.
And it's certainly not the same price!
What products are you talking about? Because I see smaller teams or one man bands putting out low quality prototypes, but not teams of 10 delivering a years work in a sprint.
Everyone else in the team is now just aware of what's happening, and understand the architecture from the meeting to review / discuss it. But implementation and rollout is fast and just by the 2 of them.
The lead told me maintaining the quality was so much easier for the 2 of them with the right AGENTS.md lines, as he didn't have to spend time fixing guiding many people to do the right thing in PR reviews.
I'm imagining the Silicon Valley scene where the character Gilfoyle has set up a loud death-metal automated noise that plays whenever the price of Bitcoin meets certain conditions... except the trigger is some kind of code-quality metric, the effect is my machine shouting at me to become serene.
The closest I can explain this phenomenon to thos who are surpised was by the LLM variance section in this recent blog post:

One thing I've learned about paradoxes: often the answer to the riddle of "how can this one thing have such a contradictory set of features and effects?" is "it's not one thing, it's two things*."
That's the idea that set me on the path to writing about "reverse centaurs" and AI. I was hearing from experienced programmers whom I knew to be reliable narrators of their own experience who described how AI was letting them write the best code of their lives; and from equally experienced and reliable coders who described a nightmare of tech debt: "I work in aviation, and I just don't think anyone should ever fly again, those things are now unsafe at any altitude, thanks to the code I had to sign off on":
https://pluralistic.net/2025/09/11/vulgar-thatcherism/#there-is-an-alternative
For so long as I thought of both of these groups as doing the same thing and getting wildly different outcomes, this was a paradox. But as soon as I realized that the former group were "centaurs" (workers who get to decide and direct their adoption of automation) and the latter were reverse centaurs (workers who were conscripted to serve as peripherals for automation systems), it all snapped into place. It only looked like they were doing the same thing – they were actually engaged in fundamentally different activities, which is why they were having such different experiences.
The same goes for vibe coding. Plenty of people I knew had gotten real value out of vibe coding personal utilities that made things better for them in a way that I instantly recognized from a life spent around people who'd been able to adapt and customize the systems they used to make their lives better:
https://pluralistic.net/2024/01/25/today-in-tabs/#unfucked-rota
Vibe coding can be seen as part of a lineage that includes shell scripting, Applescript, Hypercard and Visual Basic: ways for technical novices to directly create personal software, without having to ask a programmer to interpret their needs (and without having to pay every time they wanted to do something new with their computers):
https://pluralistic.net/2026/06/15/vernacular/#hypercardian
But if that's so, how to make sense of the seeming paradox of all that tech debt? For a tech company, code is a liability, not an asset:
https://pluralistic.net/2026/01/06/1000x-liability/#graceful-failure-modes
AI's pitch to bosses is that they can fire most of their workers in order to terrorize the remainder into tolerating a working life wherein they are made to mark the AI's homework, at superhuman speed, and to assume the blame when it goes wrong. This is obviously a terrible way to write code:
https://pluralistic.net/2024/04/23/maximal-plausibility/#reverse-centaurs
But it's also obviously going to produce terrible code:
https://pluralistic.net/2025/05/27/rancid-vibe-coding/#class-war
So is vibe code a way of empowering people to have the personal, vernacular tools that they design and adapt as they see fit? Or is it a way to shovel technological asbestos into the walls at scale, filling up our high-tech society with ghastly, lethal technical debt we'll be digging our way out of for generations?
Again: the paradox falls away once you realize that personal software you write for yourself is fundamentally different from "production code" that other people have to use, maintain and improve.
In an essay inspired by some thoughts on AI and mathematical theorem proving, Kellan Elliott-McCrea crystallizes this distinction in a really sharp way, bringing in Alex Kontorovich's idea of mathematical "canonization":
By canonization, I mean the process of taking a local, one-off formalization and turning it into library mathematics: general, reusable, coherent, efficient, and compatible with the rest… Canonization often changes the picture itself: the definitions, the abstractions, the API, and sometimes even the statement…
https://laughingmeme.org/2026/06/30/canonization-and-the-overhang.html
Elliott-McCrea posits that making code that is "socially constructed in a way that leaves the team prepared to operate on it, iterate it, and improve it" is the difference between "I got it working" and "something the future can build on."
He's not claiming that "I got it working" is worthless. There's plenty of space for "disposable and single use software." Sure, to a trained software engineer, this might be "bad code" but doing today's task has value, even if the code that performs that task isn't "accretive."
Canonization is accretive. To canonize code is to make it "legible to systems of humans and non-humans operating on it." Free/open source software is the backbone of the canon: "decades of…intelligible, build-on-able work, sitting in public repos."
My "reverse centaurs" thesis isn't just a way to understand how programmers who seem to be doing the same thing can have such different effects. It's also about how the way that the capital was raised for AI requires that it produce as many reverse centaurs as possible, because the only way to recoup the farcical sums associated with AI production is to fire millions of workers and replace them with defective chatbots backstopped by the jobspocalypse's terrorized survivors, who can be made to endlessly toil away at marking the AI's homework because there are so many other workers who'll take their jobs if they refuse.
The point being that while centaurs are good and reverse centaurs are bad, the AI bubble requires the production of reverse centaurs, to the exclusion of centaurs.
In a similar vein, Elliott-McCrea describes how the imperatives of the AI industry are devouring its seed-corn – consuming the canon without putting anything new back in it. In the same way that AI can do endless theorem-proving but is essentially useless for creating "library mathematics: general, reusable, coherent, efficient, and compatible with the rest," AI can write a lot of running code, but the AI industry is further devaluing the already undervalued work of cleanup and canonization. As Elliott-McCrea writes, "the social production of knowledge [is] the seed corn."

No Touch Money https://www.unpopularfront.news/p/no-touch-money
After Trump v Slaughter the Answer Is Court Reform https://economicpopulist.substack.com/p/after-trump-v-slaughter-the-answer
County With 37 Data Centers Asks Schools to ‘Conserve Electricity’ https://www.404media.co/henrico-virginia-datacenter-energy-cost-email/
The Assault on Congress’s Anti-Monopoly Solution https://prospect.org/2026/07/01/supreme-court-assault-on-congress-anti-monopoly-solution/
Spain’s Solar Is So Cheap Investors Are Looking for an Exit https://archive.is/EZMV8

#20yrsago Sen. Stevens’ hilariously awful explanation of the Internet https://web.archive.org/web/20060704034735/http://blog.wired.com/27BStroke6/?entry_id=1512499
#20yrsago Best music of 1900s-1920s as MP3s https://web.archive.org/web/20060703112442/http://www.foldedspace.org/weblog/2006/06/in_the_good_old_summertime.html
#15yrsago “No Endorsement” — aligning the interests of creators and fans https://locusmag.com/feature/cory-doctorow-no-endorsement/
#15yrsago Peruvian TV station owners held out for bribes that were 100X larger than those received by judges https://web.archive.org/web/20110705085927/http://fsi.stanford.edu/publications/how_to_subvert_democracy_montesinos_in_peru/
#10yrsago Paralyzed, partially deaf-blind teen with brain tumor beaten bloody by TSA https://wreg.com/news/disabled-st-jude-patient-sues-airport-and-tsa-after-bloody-scuffle-with-airport-police/
#10yrsago China’s “ultra-unreal” literary movement takes inspiration from breathtaking corruption https://lithub.com/modern-china-is-so-crazy-it-needs-a-new-literary-genre/
#10yrsago London luxury property prices plummet after Brexit vote https://www.standard.co.uk/news/london/london-house-prices-slashed-after-brexit-vote-a3285731.html
#5yrsago Biden admin orders an end to surprise billing https://pluralistic.net/2021/07/02/spoil-the-surprise/#surprise-billing
#1yrago Tessa Hulls's "Feeding Ghosts" https://pluralistic.net/2025/07/02/filial-piety/#great-leap-forward

London: Idler Festival, Jul 11
https://www.idler.co.uk/festival/
Edinburgh International Book Festival with Jimmy Wales, Aug 17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
Sydney: The Festival of Dangerous Ideas, Aug 23-24
https://festivalofdangerousideas.com/cory-doctorow/
Melbourne: Enshittification at the Wheeler Centre, Aug 25
https://www.wheelercentre.com/events-tickets/season-2026/cory-doctorow-enshittification
Brighton: The Reverse Centaur's Guide to Life After AI with Carole Cadwalladr (Brighton Dome), Sep 8
https://brightondome.org/whats-on/LSC-cory-doctorow-the-reverse-centaurs-guide-to-life-after-ai/
London: The Reverse Centaur's Guide to Life After AI with Riley Quinn (Foyle's Picadilly), Sep 9
https://www.foyles.co.uk/events/enshittification-cory-doctorow-riley-quinn
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct 6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/

Lawfare Daily
https://www.youtube.com/watch?v=T1KIwaYRs1g
How to Think About AI (Organized Money)
https://www.organizedmoney.fm/p/how-to-think-about-ai-with-cory-doctorow
Breaking Points
https://www.youtube.com/watch?v=VJmUbkRqXeE
A.I. Enshittifies Everything (Slate)
https://slate.com/podcasts/what-next-tbd/2026/06/cory-doctorow-thinks-a-i-is-overvalued-and-overrated-and-still-a-threat
A World That Just Might Work
https://aworldthatjustmightwork.com/2026/06/cory-doctorow-ai-use-it-dont-buy-the-hype-dont-feed-the-bubble/

"The Reverse-Centaur's Guide to AI," a short book about being a better AI critic, Farrar, Straus and Giroux, June 2026
https://us.macmillan.com/books/9780374621568/thereversecentaursguidetolifeafterai/
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"Enshittification: Why Everything Suddenly Got Worse and What to Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com

"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027

Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X