Disagree on your first point. AI will generate code that is mostly correct, the human time cost of (properly) reviewig this code and correcting it is generally less than also writing it. People that do more serious work than vibe-coding oneshot skateboard simulators in html do actually get noticeable productivity boosts even when every generated line of code is reviewed by multiple people.
That is why the kernel allows it, because they mostly care that a human is around that will take responsability for it, that the patches are of the same quality than always and that everything is manageable by humans. This is in contrast to the techbro github repo with commits that span 20 files and 2k edits where there is no hope in hell to understand what is going on.
It is a very well known truism that it is harder to debug code than it is to write it. This is, in my experience, doubly true of the convoluted code generated by current frontier LLMs.
Allowing LLM coding at our org basically stole most of this year’s progress from us as every PR made this way still has yet to be merged because the code quality just never reaches anywhere near our minimum requirement.
We are investigating ways to improve this (a style guide for agents etc) but the best step we’ve taken so far is just to ask people to stop using it and see what happens. (Code quality jumped up and PRs started getting merged, though the LLM ones are still languishing and probably will need rewriting from scratch before we can merge them)
That doesn’t change the fact that it’s harder to properly review code than to write code, especially when that code is ten times longer than it needs to be, makes no sensible decisions about how to separate concerns, and might, if you’re lucky, pay lip service to naming things well.
I don’t necessarily think this will always be the case with generated code, but I expect we’ll need a proper breakthrough in the technology before it can write good code (it needs a number of things: actual world models, the ability to go back and edit its output when it realises a mistake – which is crucially different from saying a new thing that contradicts the mistake – and continual learning, to name the three that spring to mind).
Even if it started writing perfect code, I’d be dubious of signing your org’s ability to write code away to a service that you don’t own and has a notable history of intellectual property infringement and an insane disregard for both the law and morality. At the very least we should all be using open weights models.
AI will generate code that is mostly correct, the human time cost of (properly) reviewig this code and correcting it is generally less than also writing it.
I do not see it play out like this in practice, for example at my workplace. The work of debugging, reviewing, verification, and maintenance is simply offloaded to other people. Which, as a result, have more work, not less.
The people running the agent need to be looking at the code and cleaning it, not someone else, that is the key thing that is missing in all these failures. Linux is the same, they would never accept something that has not at least the same quality as something written by a competent human
AI will generate code that is mostly correct, the human time cost of (properly) reviewig this code and correcting it is generally less than also writing it
Just calling LLMs “AI”, you disqualified yourself from being able to assess what proper programming is about.
That said, your statement is also objectively false in all other aspects.
LLMs are a subset of AI though. They’re a use case of generative AI, which is a subset of deep learning, which is a subset of machine learning, which is a subset of AI.
Obviously, but all machine learning systems that I am aware of - and definitely the generative ones - lack the “I” in AI in their core processing. I won’t dispute that there’s actual deterministic algorithms implemented before and after the core processing, to handle grammar rules etc. But there’s a huge danger in accepting the term “AI” for the slop machines of today. Gullible people will mistake linguistically sophisticated output for actual understanding, and trust the output to be correct.
Less gullible people have the obligation (imo) to set that record straight every time the topic comes up. Because gullible people vote, too - and they will otherwise be fine with slop machines controlling critical infrastructure the malfunction of which may be lethal.
And OP made the outrageous claim that reviewing and correcting LLM output would be less effort than “also writing it”. Even if LLMs did not, as they do, tend to generate a lot of garbage code to throw at tiny problems, and even if they did not MASS VIOLATE LICENSES AND COPYRIGHTS (yes, that makes me angry), the time spent on developing an all but trivial algorithm is a constant back and forth between writing it, reviewing it and tuning it. The actual writing of code is negligible compared to the amount of time a serious developer has to spend thinking about what a line of code does, and what it does not do.
The only people that “benefit” from LLM generated code are people who would otherwise not be able to piece together a stable bit of software beyond a “Hello World”, and now they break out of their sandboxes and waste the time of actual developers with their slop pull requests. One could almost assume this was an intended side effect by big corporations to kill the trust and efficiency in open source projects.
And “AI” in general, and in a technical sense, is just a label for a set of techniques which have the common goal that computers solve certain, hitherto unsolved, complex tasks. The content of the set, and thus the exact meaning of the label changes over time. For example recognition of handwritten digits, graph algorithms e.g. for route planning, or backtracking algorithms playing board games were once considered AI, but aren’t today.
Which is separate from the mere belief that computers will become as “intelligent” as humans - this is a kind of belief system with some quasi-religuous aspects.
It would be better to not call it “AI” but “experimental novel computing methods”, leaving out the quasi-religuous stuff…
I am a software dev with more than 10 years of experience I have code in production and need to support legacy systems. I am trying to explain how I found a way to use this stuff in helping me in doing my job and getting food on my family’s table, but sure buddy I don’t know what I am talking about.
I have had to debug code of “software devs with more than 10 years of experience” often enough to know experience does not equal skill. If you think slop generators are helping you, while you by violating the licenses of all developers whose code went into the training data, then you apparently did not invest those 10 years well.
Disagree on your first point. AI will generate code that is mostly correct, the human time cost of (properly) reviewig this code and correcting it is generally less than also writing it. People that do more serious work than vibe-coding oneshot skateboard simulators in html do actually get noticeable productivity boosts even when every generated line of code is reviewed by multiple people.
That is why the kernel allows it, because they mostly care that a human is around that will take responsability for it, that the patches are of the same quality than always and that everything is manageable by humans. This is in contrast to the techbro github repo with commits that span 20 files and 2k edits where there is no hope in hell to understand what is going on.
It is a very well known truism that it is harder to debug code than it is to write it. This is, in my experience, doubly true of the convoluted code generated by current frontier LLMs.
Allowing LLM coding at our org basically stole most of this year’s progress from us as every PR made this way still has yet to be merged because the code quality just never reaches anywhere near our minimum requirement.
We are investigating ways to improve this (a style guide for agents etc) but the best step we’ve taken so far is just to ask people to stop using it and see what happens. (Code quality jumped up and PRs started getting merged, though the LLM ones are still languishing and probably will need rewriting from scratch before we can merge them)
Well, my point is that the review should be before the pr, not after.
That doesn’t change the fact that it’s harder to properly review code than to write code, especially when that code is ten times longer than it needs to be, makes no sensible decisions about how to separate concerns, and might, if you’re lucky, pay lip service to naming things well.
I don’t necessarily think this will always be the case with generated code, but I expect we’ll need a proper breakthrough in the technology before it can write good code (it needs a number of things: actual world models, the ability to go back and edit its output when it realises a mistake – which is crucially different from saying a new thing that contradicts the mistake – and continual learning, to name the three that spring to mind).
Even if it started writing perfect code, I’d be dubious of signing your org’s ability to write code away to a service that you don’t own and has a notable history of intellectual property infringement and an insane disregard for both the law and morality. At the very least we should all be using open weights models.
I do not see it play out like this in practice, for example at my workplace. The work of debugging, reviewing, verification, and maintenance is simply offloaded to other people. Which, as a result, have more work, not less.
The people running the agent need to be looking at the code and cleaning it, not someone else, that is the key thing that is missing in all these failures. Linux is the same, they would never accept something that has not at least the same quality as something written by a competent human
Just calling LLMs “AI”, you disqualified yourself from being able to assess what proper programming is about.
That said, your statement is also objectively false in all other aspects.
LLMs are a subset of AI though. They’re a use case of generative AI, which is a subset of deep learning, which is a subset of machine learning, which is a subset of AI.
Obviously, but all machine learning systems that I am aware of - and definitely the generative ones - lack the “I” in AI in their core processing. I won’t dispute that there’s actual deterministic algorithms implemented before and after the core processing, to handle grammar rules etc. But there’s a huge danger in accepting the term “AI” for the slop machines of today. Gullible people will mistake linguistically sophisticated output for actual understanding, and trust the output to be correct. Less gullible people have the obligation (imo) to set that record straight every time the topic comes up. Because gullible people vote, too - and they will otherwise be fine with slop machines controlling critical infrastructure the malfunction of which may be lethal.
And OP made the outrageous claim that reviewing and correcting LLM output would be less effort than “also writing it”. Even if LLMs did not, as they do, tend to generate a lot of garbage code to throw at tiny problems, and even if they did not MASS VIOLATE LICENSES AND COPYRIGHTS (yes, that makes me angry), the time spent on developing an all but trivial algorithm is a constant back and forth between writing it, reviewing it and tuning it. The actual writing of code is negligible compared to the amount of time a serious developer has to spend thinking about what a line of code does, and what it does not do.
The only people that “benefit” from LLM generated code are people who would otherwise not be able to piece together a stable bit of software beyond a “Hello World”, and now they break out of their sandboxes and waste the time of actual developers with their slop pull requests. One could almost assume this was an intended side effect by big corporations to kill the trust and efficiency in open source projects.
And “AI” in general, and in a technical sense, is just a label for a set of techniques which have the common goal that computers solve certain, hitherto unsolved, complex tasks. The content of the set, and thus the exact meaning of the label changes over time. For example recognition of handwritten digits, graph algorithms e.g. for route planning, or backtracking algorithms playing board games were once considered AI, but aren’t today.
Which is separate from the mere belief that computers will become as “intelligent” as humans - this is a kind of belief system with some quasi-religuous aspects.
It would be better to not call it “AI” but “experimental novel computing methods”, leaving out the quasi-religuous stuff…
I am a software dev with more than 10 years of experience I have code in production and need to support legacy systems. I am trying to explain how I found a way to use this stuff in helping me in doing my job and getting food on my family’s table, but sure buddy I don’t know what I am talking about.
I have had to debug code of “software devs with more than 10 years of experience” often enough to know experience does not equal skill. If you think slop generators are helping you, while you by violating the licenses of all developers whose code went into the training data, then you apparently did not invest those 10 years well.
Ok thought you where a crusader, I am sure you also are against systemd and probably a rust keyboard warrior too eh?