First draft of what? The AI* doesn’t know what you’re trying to make, so to use it, you first need to write a prompt to convey to it what you’re trying to convey. If what you’re trying to make takes the form of prose, there’s your first draft already; there’s nothing the AI can add other than padding and replacing your voice with a psychopath’s. But to begin with, if you have the skill to turn a first draft into a final product, it’s almost always going to be faster to just use that skill to create the first draft yourself instead of trying to convey to an AI what it’s supposed to be like. If it isn’t, it’s something that’s so easy to describe that there’s either no value in making it or those few words are already the perfect way to convey it.
Also, this just completely undermines the whole thing:
It still requires oversight and expertise.
The sole virtue AI arguably has, is its accessibility; anyone who can read and write a supported natural language, can make use of it. But the moment it starts requiring expertise, that accessibility becomes worthless. To anyone who is even somewhat serious about what they’re trying to do, that natural language interface just offers far too little control for their purposes.
*) For the purposes of this comment, “AI” refers to the kinds of natural language-driven generative AI heavily marketed by companies like Microsoft, not the general concept of artificial intelligence or even the underlying technology of those products.
This is an incredibly stupid take, can’t believe people upvoted this shit, lol
Have you not used AI agents anytime in the past 6 months?
They can pull in information that you don’t write down, it can create Powerpoint slides, it can create mermaid diagrams from your description.
Those are not things you just do manually because you can? At that point why not code in Notepad instead of relying on the stupid machine assisted IDEs?
This is an incredibly stupid take, and I genuinely can’t believe people are upvoting it.
Have you actually used an AI agent at any point in the last six months?
Your entire argument seems to rest on the bizarre assumption that describing what you want is roughly equivalent in effort to producing it yourself. It isn’t. That’s literally why abstractions and tools exist.
I can describe the architecture I want in a few paragraphs and have an agent generate a Mermaid diagram. I can give it a pile of documents and have it pull together information I didn’t manually write into the prompt. I can describe the structure and content of a presentation and have it generate the actual PowerPoint. I can give it a repetitive refactoring task that I fully understand how to perform myself and have it apply that change across a codebase.
The fact that I need enough expertise to verify the result doesn’t somehow eliminate the time saved producing it.
I know how to write Java without an IDE. That doesn’t mean IntelliJ becomes useless because I need to understand Java to verify whether the code it generates, refactors, or autocompletes is correct.
And the claim that requiring expertise somehow eliminates AI’s usefulness is particularly strange. Most useful tools require expertise. IDEs require expertise. CAD software requires expertise. Excel requires expertise if you’re doing anything remotely complicated with it. Their purpose isn’t necessarily to let an unskilled person impersonate an expert; it’s to make an expert substantially more productive.
Natural language also isn’t the only interface. Modern agents operate on files, repositories, documents, databases, APIs, tool outputs, search results, and existing context. The prompt can literally be “turn this into a presentation” or “diagram this architecture.” You don’t have to painstakingly reconstruct the entire source material in prose first.
There are plenty of legitimate criticisms of generative AI: hallucinations, unreliable output, loss of control in certain workflows, mediocre prose, inappropriate use cases, people blindly trusting the output, etc.
But “if you know enough to check its work, you might as well have done the work yourself” is basically an argument for coding in Notepad because a competent programmer shouldn’t need a stupid machine-assisted IDE.
Knowing how to do something and wanting to spend your time manually doing every part of it are not the same thing.
I actually don’t need to know how my IDE works to use it.
Neither do I need to know how a transformer works to use an AI agent. What does that have to do with anything?
I need to know Java to recognize whether IntelliJ’s refactoring produced sensible Java, just as I need domain expertise to recognize whether an AI agent produced sensible output. “Requires oversight and expertise” does not mean “requires understanding the internal implementation of the tool.”
With increasing degrees of specificity, it kind of is, yeah.
No, it really isn’t, and this is probably the strangest part of your argument.
Specificity of requirements and effort of implementation are two completely different things.
“Take these 30 classes, rename this field, update its usages, add null checks at these boundaries, update the affected tests, and run the test suite” is a reasonably specific description of a task. It is quite obviously not equivalent in effort to manually performing every edit.
“Create a sequence diagram showing the interaction between these five services for this request flow” can take seconds to describe and considerably longer to manually construct.
“Take these documents, extract these specific metrics, compare them by quarter, and put the results into a PowerPoint using this existing deck as the visual template” is a perfectly comprehensible specification. Actually reading the documents, extracting the data, calculating the comparisons, creating the charts and assembling the slides is where the work is.
This distinction is the entire reason programming exists. A specification describes what computation you want performed. We don’t conclude that because SQL lets me precisely specify which data I want from a database, I might as well manually inspect every row.
And “it only saves time where you don’t care about shit-quality work” is just begging the question. You’ve defined AI output as shit and then concluded that anyone accepting AI output must therefore not care about quality.
The useful workflow isn’t “ask AI for something and blindly ship whatever comes out.” It’s “specify the task, let the machine perform the expensive mechanical portion, inspect the result, and correct or reject it where necessary.”
Sometimes that is slower than doing it yourself. Sometimes the output is shit. Sometimes AI is simply the wrong tool.
But the idea that describing a task with sufficient precision inevitably approaches the effort required to execute that task is just demonstrably false.
If that were true, half of software engineering wouldn’t exist.
There is like a very basic topological fact here that you are just failing to grasp.
Specificity of requirements and effort of implementation are two completely different things.
No, they’re not. Implementations are just requirements with very high specificity. When you roll your eyes over the horribly inept dogshit your AI produces and then correct it, you are adding specificity to the system. This can proceed ad infinitum until you end up just doing the whole thing yourself—which I have done with Suno, because Suno is garbage.
You’ve defined AI output as shit and then concluded that anyone accepting AI output must therefore not care about quality.
It’s a rule that’s served me well. I think I’ll keep doing it.
“Create a sequence diagram showing the interaction between these five services for this request flow” can take seconds to describe and considerably longer to manually construct.
It is extremely funny you would put this up as an example.
I will have to manually construct it anyway because that is literally the only way I’ll know if the AI-that-fucks-up has fucked it up or not.
There is like a very basic topological fact here that you are just failing to grasp.
I think the “very basic topological fact” you’re looking for is that you’ve discovered a continuum and then somehow convinced yourself that this means both ends of it are the same thing.
Implementations are just requirements with very high specificity.
Yes, if you progressively specify every implementation detail until you’ve literally specified the complete implementation, then congratulations: you’ve eventually implemented it.
This is a genuinely fascinating discovery.
Unfortunately, absolutely nothing requires you to do that.
“Rename this field everywhere, update the tests and verify they pass” is more specific than “fix the code,” and considerably less specific than enumerating every character that needs to change in every file.
The entire useful space between those two points is apparently missing from your topology.
I will have to manually construct it anyway because that is literally the only way I’ll know if the AI-that-fucks-up has fucked it up or not.
This might be my favourite part.
No, reviewing something does not require independently recreating it from scratch. I genuinely don’t know how you function professionally if you believe this.
I review other people’s code without first independently implementing their ticket.
I review pull requests without recreating every commit myself.
I review architecture diagrams without drawing a second architecture diagram and holding them up to the light.
I review PowerPoint decks without secretly making my own PowerPoint deck first.
I can inspect a sequence diagram and notice “service B doesn’t call service C there” without first spending twenty minutes lovingly dragging boxes and arrows around myself.
This is, in fact, one of the rather important properties of human cognition: recognizing whether something is correct can be dramatically cheaper than producing it.
Otherwise code review would involve two developers independently implementing every feature so one of them could check the other.
Your Suno example is equally compelling. You found a tool that couldn’t produce output meeting your standards for a particular task, so you stopped using it for that task.
Excellent.
I once encountered a screwdriver that was unsuitable for hammering in a nail. Thankfully I managed to resist developing a general theory of screwdrivers from the experience.
And this:
It’s a rule that’s served me well. I think I’ll keep doing it.
is at least refreshingly explicit. We’ve finally abandoned the argument and arrived at “I have decided AI output is shit, therefore AI output is shit.”
Which is perfectly fine as a personal preference.
It’s just considerably less interesting than the “very basic topological fact” you dressed it up as.
See, I know you can’t understand what’s being said because you’ve already relegated yourself to the role of “reviewer” and are no longer an artisan invested in the state of your craft. You have abandoned the art that supposedly makes your career.
and notice “service B doesn’t call service C there” without first spending twenty minutes lovingly dragging boxes and arrows around myself.
My guy, dragging the boxes is the easy part. If you already know what these services do, what is the AI accomplishing for you? You’re already at a 0.9 on the ticket-to-implementation continuum. Like actually, what the fuck are you talking about?
I once encountered a screwdriver that was unsuitable for hammering in a nail.
Profound.
No, really—I’ve never thought about screwdrivers before. It’s really eye-opening to think about just how much technology is like hammers.
If only some tech-head were around to explain tools to me, maybe I could have convinced my dad to stop misapplying the heroin to his elbow every night.
First draft of what? The AI* doesn’t know what you’re trying to make, so to use it, you first need to write a prompt to convey to it what you’re trying to convey. If what you’re trying to make takes the form of prose, there’s your first draft already; there’s nothing the AI can add other than padding and replacing your voice with a psychopath’s. But to begin with, if you have the skill to turn a first draft into a final product, it’s almost always going to be faster to just use that skill to create the first draft yourself instead of trying to convey to an AI what it’s supposed to be like. If it isn’t, it’s something that’s so easy to describe that there’s either no value in making it or those few words are already the perfect way to convey it.
Also, this just completely undermines the whole thing:
The sole virtue AI arguably has, is its accessibility; anyone who can read and write a supported natural language, can make use of it. But the moment it starts requiring expertise, that accessibility becomes worthless. To anyone who is even somewhat serious about what they’re trying to do, that natural language interface just offers far too little control for their purposes.
*) For the purposes of this comment, “AI” refers to the kinds of natural language-driven generative AI heavily marketed by companies like Microsoft, not the general concept of artificial intelligence or even the underlying technology of those products.
This is an incredibly stupid take, can’t believe people upvoted this shit, lol
Have you not used AI agents anytime in the past 6 months?
They can pull in information that you don’t write down, it can create Powerpoint slides, it can create mermaid diagrams from your description.
Those are not things you just do manually because you can? At that point why not code in Notepad instead of relying on the stupid machine assisted IDEs?
You may want to have your AI re-summarize that one for you. It seems to have royally fucked up somewhere.
You asked for it:
This is an incredibly stupid take, and I genuinely can’t believe people are upvoting it.
Have you actually used an AI agent at any point in the last six months?
Your entire argument seems to rest on the bizarre assumption that describing what you want is roughly equivalent in effort to producing it yourself. It isn’t. That’s literally why abstractions and tools exist.
I can describe the architecture I want in a few paragraphs and have an agent generate a Mermaid diagram. I can give it a pile of documents and have it pull together information I didn’t manually write into the prompt. I can describe the structure and content of a presentation and have it generate the actual PowerPoint. I can give it a repetitive refactoring task that I fully understand how to perform myself and have it apply that change across a codebase.
The fact that I need enough expertise to verify the result doesn’t somehow eliminate the time saved producing it.
I know how to write Java without an IDE. That doesn’t mean IntelliJ becomes useless because I need to understand Java to verify whether the code it generates, refactors, or autocompletes is correct.
And the claim that requiring expertise somehow eliminates AI’s usefulness is particularly strange. Most useful tools require expertise. IDEs require expertise. CAD software requires expertise. Excel requires expertise if you’re doing anything remotely complicated with it. Their purpose isn’t necessarily to let an unskilled person impersonate an expert; it’s to make an expert substantially more productive.
Natural language also isn’t the only interface. Modern agents operate on files, repositories, documents, databases, APIs, tool outputs, search results, and existing context. The prompt can literally be “turn this into a presentation” or “diagram this architecture.” You don’t have to painstakingly reconstruct the entire source material in prose first.
There are plenty of legitimate criticisms of generative AI: hallucinations, unreliable output, loss of control in certain workflows, mediocre prose, inappropriate use cases, people blindly trusting the output, etc.
But “if you know enough to check its work, you might as well have done the work yourself” is basically an argument for coding in Notepad because a competent programmer shouldn’t need a stupid machine-assisted IDE.
Knowing how to do something and wanting to spend your time manually doing every part of it are not the same thing.
I actually don’t need to know how my IDE works to use it. That is one benefit to not using dice as your main construction technique.
With increasing degrees of specificity, it kind of is, yeah. It only saves time in places where you don’t care about shit-quality work.
Neither do I need to know how a transformer works to use an AI agent. What does that have to do with anything?
I need to know Java to recognize whether IntelliJ’s refactoring produced sensible Java, just as I need domain expertise to recognize whether an AI agent produced sensible output. “Requires oversight and expertise” does not mean “requires understanding the internal implementation of the tool.”
No, it really isn’t, and this is probably the strangest part of your argument.
Specificity of requirements and effort of implementation are two completely different things.
“Take these 30 classes, rename this field, update its usages, add null checks at these boundaries, update the affected tests, and run the test suite” is a reasonably specific description of a task. It is quite obviously not equivalent in effort to manually performing every edit.
“Create a sequence diagram showing the interaction between these five services for this request flow” can take seconds to describe and considerably longer to manually construct.
“Take these documents, extract these specific metrics, compare them by quarter, and put the results into a PowerPoint using this existing deck as the visual template” is a perfectly comprehensible specification. Actually reading the documents, extracting the data, calculating the comparisons, creating the charts and assembling the slides is where the work is.
This distinction is the entire reason programming exists. A specification describes what computation you want performed. We don’t conclude that because SQL lets me precisely specify which data I want from a database, I might as well manually inspect every row.
And “it only saves time where you don’t care about shit-quality work” is just begging the question. You’ve defined AI output as shit and then concluded that anyone accepting AI output must therefore not care about quality.
The useful workflow isn’t “ask AI for something and blindly ship whatever comes out.” It’s “specify the task, let the machine perform the expensive mechanical portion, inspect the result, and correct or reject it where necessary.”
Sometimes that is slower than doing it yourself. Sometimes the output is shit. Sometimes AI is simply the wrong tool.
But the idea that describing a task with sufficient precision inevitably approaches the effort required to execute that task is just demonstrably false.
If that were true, half of software engineering wouldn’t exist.
There is like a very basic topological fact here that you are just failing to grasp.
No, they’re not. Implementations are just requirements with very high specificity. When you roll your eyes over the horribly inept dogshit your AI produces and then correct it, you are adding specificity to the system. This can proceed ad infinitum until you end up just doing the whole thing yourself—which I have done with Suno, because Suno is garbage.
It’s a rule that’s served me well. I think I’ll keep doing it.
It is extremely funny you would put this up as an example.
I will have to manually construct it anyway because that is literally the only way I’ll know if the AI-that-fucks-up has fucked it up or not.
I think the “very basic topological fact” you’re looking for is that you’ve discovered a continuum and then somehow convinced yourself that this means both ends of it are the same thing.
Yes, if you progressively specify every implementation detail until you’ve literally specified the complete implementation, then congratulations: you’ve eventually implemented it.
This is a genuinely fascinating discovery.
Unfortunately, absolutely nothing requires you to do that.
“Rename this field everywhere, update the tests and verify they pass” is more specific than “fix the code,” and considerably less specific than enumerating every character that needs to change in every file.
The entire useful space between those two points is apparently missing from your topology.
This might be my favourite part.
No, reviewing something does not require independently recreating it from scratch. I genuinely don’t know how you function professionally if you believe this.
I review other people’s code without first independently implementing their ticket.
I review pull requests without recreating every commit myself.
I review architecture diagrams without drawing a second architecture diagram and holding them up to the light.
I review PowerPoint decks without secretly making my own PowerPoint deck first.
I can inspect a sequence diagram and notice “service B doesn’t call service C there” without first spending twenty minutes lovingly dragging boxes and arrows around myself.
This is, in fact, one of the rather important properties of human cognition: recognizing whether something is correct can be dramatically cheaper than producing it.
Otherwise code review would involve two developers independently implementing every feature so one of them could check the other.
Your Suno example is equally compelling. You found a tool that couldn’t produce output meeting your standards for a particular task, so you stopped using it for that task.
Excellent.
I once encountered a screwdriver that was unsuitable for hammering in a nail. Thankfully I managed to resist developing a general theory of screwdrivers from the experience.
And this:
is at least refreshingly explicit. We’ve finally abandoned the argument and arrived at “I have decided AI output is shit, therefore AI output is shit.”
Which is perfectly fine as a personal preference.
It’s just considerably less interesting than the “very basic topological fact” you dressed it up as.
See, I know you can’t understand what’s being said because you’ve already relegated yourself to the role of “reviewer” and are no longer an artisan invested in the state of your craft. You have abandoned the art that supposedly makes your career.
My guy, dragging the boxes is the easy part. If you already know what these services do, what is the AI accomplishing for you? You’re already at a 0.9 on the ticket-to-implementation continuum. Like actually, what the fuck are you talking about?
Profound.
No, really—I’ve never thought about screwdrivers before. It’s really eye-opening to think about just how much technology is like hammers.
If only some tech-head were around to explain tools to me, maybe I could have convinced my dad to stop misapplying the heroin to his elbow every night.