Those requirements will be specified as tests or in a very high level language that doesn't allow for ambiguous meanings. Which is essentially another programming language just more high level.
I also doubt traditional programming languages are going anywhere in the short term, seeing there are trillions of lines of code for critical systems in the wild. Good luck replacing that in a few years only, or fully delegating its maintenance to Devin.
Yes, okay, but what will happen to junior to mid level engineers? In many companies these levels can't even have an influence on architecture.
(Not saying you're wrong about "higher and higher levels of abstraction" - that's the way it's always been - but the unique promise of AI is the ability to deal with ambiguity in the requirements).
Not sure what is shocking. Some of us used Codex in 2021 and nothing has changed since that has revolutionised software development by any capacity. Feels like people are just saying whatever some tech CEO or worse, some guru says.
Progress isn't some infinite exponential either where you can just keep increasing the capacity of models and expect better results. Also not sure where they are going to get better training data when they already polluted the internet with AI generated data.
Speaking just to programming, yes there's probably lots of AI-generated code in the training data now. But the generation of that code was guided by, and (presumably) confirmed to be working by, a human. So it's been filtered.
I suspect that AI-and-human produces better code than human, on average. I know that if I throw any twenty lines of my code into it, it can usually suggest some improvement, even if it's just a variable name.
The reason is simple - to find a solution is to create a program that has a specific set of properties. This - by Rice's Theorem - is not possible to realise using a Turing Machine. So as long as the solution search space is small (ie. we are talking about very similar programs to generate) - ML based methods are fine.
But once we are talking about finding solutions to non-trivial problems - I am sure human is needed.
It's a purely empirical question about the extent to which Church-Turing holds of the real world.
It is always _by definition_ a game between humans where computers are just tools.
At least as long as AGI does not happen…
Recall that things are true "by definition" if they're not true for any other reason; you're free to define yourself out of the race against the machines, but the real world need not pay attention to your definition!
Computers are "just tools" is certainly true, but I find it harder to automatically agree that the programs running on them are "just tools". Here is a rather bad analogy which is suggestive: in school we learn that there are seven features which are necessary and to some extent sufficient to identify a living organism ("movement, respiration, sensitivity to surroundings, growth, reproduction, excretion, nutrition"). Programs certainly move (thanks to Kubernetes, for example), are sensitive to their surroundings (think of self-healing clusters or load-shedding), grow (scale up in response to demand), and excrete (cleanup jobs on databases). They don't respire, but then that was only ever a contingent feature of how life evolved on Earth; they don't take in nutrients unless you really stretch the analogy; they don't currently reproduce, although LLMs being able to code means it's only a matter of time before an LLM can train another LLM (even Claude 3 Opus is able to train small ML models). All this is to say that the word "tool" is a very poor description of what an LLM is: "tool" calls to mind things which don't have any of those lifelike properties, whereas even large non-intelligent software systems such as Kubernetes have many of those properties.
It is going to happen by definition - people by definition want more than they have today and want to solve unsolved engineering problems ("problems" that machines can solve are simply not problems anymore).
The only way it can end is creation of some overwhelming intelligence (AGI) that would govern (or some might say: enslave) people so that their demands are controlled.
Yes, some people do novel problem solving with software. But it's super rare in the grand scheme of the millions of people in the world who program.
The devil is in the details - your mixture of features is different than mine. We have constant upgrade of video codecs that offer more capabilities. We have unavoidable security issues that need to be somehow addressed (by version upgrades or replacing some components). Etc, etc, etc...
IMO it is quite arrogant to claim "all problems are the same problem" - they are not even though they might look similar.
I don’t agree with this - the space of problems to solve is as big as that of solutions (both are programs in the end).
I don’t think suggestion about lack of experience deserves any response.
No, it means 95% of effort spent is spent towards already solved problems. This is, in part, why I hate capitalism. People are doing tons of work simply to compete with others instead of working together to solve meaningful problems.
BTW - lack of an authority deciding what problems are meaningful is the core idea of capitalism. And I'm telling you as a person that lived many years under communism: this is much better for everybody.