That said, it is the very nature of software development (or any endeavor in building complex systems) that we discover a lot of the detail problems later down the line. I don't think of concerns about something like this as "shifting goal posts", I think of them as refining our understanding of the nature of the problems (in this case, the nature of a developer's work).
If you think your job is on the chopping block by way of AI then you are confused about the value you offer. I'm often disgusted that even senior devs are confused about what their job is.
AI is an amazing tool for software development--the perfect immediate application. Pick it up and use it and don't look back.
The industry maturing, easy VC/stock market money drying up, the economy not doing so great, those are the dangers I'd worry about.
But who can predict the future? I sure can't.
Does this represent a meaningful improvement in AI?
Yes. The various iterations of "isn't this just" seem to be getting progressively better over time though...
It is. The paper has this paragraph where autodev requires rules for it's setup.
> The user initiates the process by configuring rules and actions through yaml files. These files define the available commands (actions) that AI agents can perform. Users can leverage default settings or fine-grained permissions by enabling/disabling specific commands, tailoring AutoDev to their specific needs. This configuration step allows for precise control over the AI agents’ capabilities. At this stage the user can define the number and behavior of the AI agents, assigning specific responsibilities, permissions, and available actions. For example, the user could define a ”Developer” agent and a ”Reviewer” agent, that collaboratively work towards an objective.
Their example is very simple as well, and the code generated does not cover the usecase where the sentence might have `I'm` or `I've`. I feel that the tool would generate a template with missing logic and then the overhead falls on the developer to figure it out and then add them (since this entire process is automated).
The original comment is just farming upvotes from the `AI hype` people on HN. It's become quite common with gangs of users upvoting each other and downvoting any other narrative that does not fit into their `AI` world.
> Does this represent a meaningful improvement in AI?
It seem more like setting up a factory using a LLM and then making it generate other factories.
Definitely any interesting area of development with papers like this and tools like Devin being released. Interesting times.
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.