Ask HN: Is AI-Assisted Coding the Start of the Death of Software Development?
Been messing around with ChatGPT & I am sincerely amazed! I am wondering what the future will look like a couple years from now when these LLMs improve . Also, What fields do you think will be safe from the AIs
63 comments
[ 3.1 ms ] story [ 122 ms ] threadOr it could transform swdev into an AI-centricindustry where people take care of everything the AI can not.
A new arm of Government will develop to regulate A.I. --- a need Elon M has been crowing about for some time. There's talk of writing spec for Wario bots along a gradient of danger levels.
And without coding skills, that boilerplate will break or fail to get stitched together, too.
I absolutely see it making some parts of the development process vastly more efficient though.
I.e. 10 LOC -> 100 LOC -> 1000 LOC -> 10K LOC -> 100K LOC.
I failed to see AI moving behind 1000 LOC. I.e. 10*100LOC << 1000LOC.
Also, the AI is statistical, it does not have any notion of the real world. I.e. he might know how to write a function, but it does not know why you need the function.
That is true until it is not. As a long time art lover, I have seen more amazing art randomly generated on my own machine in the last 2 months than I could see at any art gallery near me.
I think we underestimate how statistical creativity is. For human artists and musicians we just call them influences.
Of course humans will still be involved in the loop but the productivity of one human is going to utterly explode this decade when it comes to knowledge work.
One is subjective the other one is objective. To create something objective you need to understand the current world state, and this AI does not understand it.
I.e. this AI (might) work if he had seen all the possible states of the world , and their next state.
Seen that many times in humans, too.
One place, we were upgrading the data storage in an app from a custom file format to a local database, and on some files the transfer process from old to new was taking 20 minutes. The other developer absolutely insisted it was as fast as it could possibly be, even though (1) the app loaded the data almost instantly when it was plain text, and (2) likewise after the data had been transferred to the database.
I looked through the transfer function and the tree of other functions that it called in turn, found it was trying to de-duplicate some data, asked the CTO if we cared about this, CTO said no, I removed that function, and measured the new time to transfer that specific data as, IIRC, 200ms.
We are a long way from AIs that can operate independently. And until then the AI will just be a productivity tool. Maybe we will all become a hundred times more productive, and it will still not be the end of the programmer.
The real threat that I see is that the AI will leave the boring part to us: The code review of AI work. If I see this development I will plan for an early retirement.
But when a tried it didn't work and spent an hour tryin to fix it.
Then I decided to write my own code and stop wasting time.
I think he meant it just as a joke but it’s actually stuck with me as pretty valuable. At one point in his career being a programmer was as much about manipulating paper cards as it was systems thinking.
At some point in the future manipulating text may not be a central job of a programmer, but I doubt systems thinking gets replaced anytime soon by currently understood technologies.
I remember people claiming intellisense style code completion would be the end of developers, but I’m sure there are more developers now than when it was introduced.
Do you enjoy writing code just for the sake of writing code? The thing I enjoy about programming is the results of the programming. Code is just the language I have to speak in order to get the idea that's in my head onto the computer screen. If I could just speak English and have the same result, I would be just as happy.
Maybe it could be used to decompile code and automatically give it meaningful variable and type names.
There are 3 dimensions to any machine: input, implementation, and output. So something like DALLE has very impressive implementation-level intelligence. But as everyone knows by now, it still takes a crafty human to create the necessary input.
In my opinion, “turning complex requirements into functionally correct code” is an input problem, and I think AI has a loooong way to go on that front.
Mindless stuff like "add a column with birthdate in it" could be automated though.
I say this because look at some the garbage software produced by real humans/contractors that actually have reasoning capabilities, and it's still buggy and terrible.
As you get more specialized, there is less example code, thus the AIs do worse. As you move to the cutting edge, there is almost no example code.
So things that have been done thousands of times, will get eaten by the AI coders first. Then it will move up the value chain, how fast it isn't clear.
Another important question is about scale, making a thousand times a 10 line application is not the same as making one 10000 lines application. How good will the AI be at that?
Right now it is the same as "googling the answer", just faster. Which is impressive, but far from career ending.
I think another important aspect is that a lot of SW development is building upon already existing code bases. One benchmark for an AI would definitely be its ability to take in an entirely novel code base and make edits to it. I would guess that any current language model, no matter how well trained can achieve that. The tendency for it to invent by itself seems to make that destined for failure.
>Also, What fields do you think will be safe from the AIs
Any industry which is more than a bit hesitant about change. E.g. aerospace and defense.
No job will be safe and thats a good thing. People value themselfs to highly and i bet from experience all of us know at least one guy who could have been easily replaced with a shell script.
That is not meant in a way that that person is not able to do other things or is impaired in anyway, buutttt imagine how many jobs in general could be replaced by very small shell scripts. Coding aint gonnna be any different.
So can we conclude that if coding won't be any different, there will still be a lot of humans who could be replaced by an AI, but won't be?
There will be specific exceptions with specific medical tasks, though I can’t really forecast which or how many tasks. Being able to triage arrivals at A&E based on their symptoms is different from having a database of known pharmaceutical interactions, and both are very different from being able to tell which mole is cancerous and which is benign.
But overall, I expect the domains with limited or absent training sets to be those that go longest before being automated, and I think medicine has a lot of specific tasks in that category.
They need an enormous training set compared to humans because they can do a lot more than any single human. The breadth of knowledge that ChatGPT can synthesize across all sorts of subjects from politics, to poetry to programming would need at least 1,000 humans working in concert.
I'm not sure a training set specifically tailored to healthcare would need to be quite so large.
I do see lots of positives and use cases for more narrowly defined tools that help the programmer and make him/her more productive and powerful.
For example, I've been playing with a new Terminal app (Warp) the lets you type plain English at the prompt. It then translates it to the proper bash command using GPT3. It's brilliant, it works, and it doesn't put me out of a job. It just makes me more productive and more able to focus on the problems specific to my company.
The job of most programers is to understand a problem and to create a few kb of text per day. On this front GPT is already a million time more productive. Maybe it doesn’t understand all the subtleties, but I don’t see a reason why it can’t.
But if you look at most office, the job of people is to shuffle a few kb of text per day. Email to customers or suppliers, a bit of documentation, etc.
Add an humanoid robot for the manual tasks and one or two year of improvement of the AI.
It's like any tool, it multiplies the effort of a designer. Previously we had shovels, so we needed a lot of healthy guys to shovel dirt. Now we have earth movers, and we use a more trained person to operate it. But it also means there's a lot more projects that become viable, so more people will end up getting sucked into them.
Personally I'm looking forward to being able to specify software without having to deal with minor issues like forgetting what to import, off-by-ones, and that kind of thing. I can spend more time thinking about the requirements.
Could AI reduce the need for programmers? Probably.. I could see some "low code / no code" services built around AI. They could make their own programming language and/or training data in a specific domain to be more easily digestible by a LLM.
I think the situation for programming is pretty similar to the AI art situation, tho arguably programming is the more difficult problem.
I'm more worried about everything becoming even more of a buggy mess than it already is. Wonder how good something like this can get at predicting weird edge cases.
1) Peter Thiel’s 10x improvement concept from Zero-to-One.
2) The exponentially increasing rate of AI research and improvement.
additionally, a third point is relevant:
3) Max Tegmark’s idea that the best AI agents will have been generated by AI.
I think we’re seeing an ‘intelligence’ explosion begin to rustle from its sleep. It’s difficult to predict when it’s coming, but I don’t think SE’s are the ones with the safest jobs. The inflection point will be a ChatGPT that costs $10k/yr to run, as that’s basically a 10x improvement in the cost of devs.
I'm also not convinced that "new ideas" are not also just statistical reasoning, so it too could fall to AI advancement.