The difficult part of software development has always been the continuing support. Did the chatbot setup a versioning system, a build system, a backup system, a ticketing system, unit tests, and help docs for users. Did it get a conflicting request from two different customers and intelligently resolve them? Was it given a vague problem description that it then had to get on a call with the customer to figure out and hunt down what the customer actually wanted before devising/implementing a solution?
This is the expensive part of software development. Hiring an outsourced, low-tier programmer for almost nothing has always been possible, the low-tier programmer being slightly cheaper doesn't change the game in any meaningful way.
Yeah, I'm already quite content, if I know upfront that our customer's goal does not violate the laws of physics.
Obviously, there's also devs who code more run-of-the-mill stuff, like yet another business webpage, but those are still coded anew (and not just copy-pasted), because customers have different and complex requirements. So, even those are still quite a bit more complex than designing just any Gomoku game.
"I gave an LLM a wildly oversimplified version of a complex human task and it did pretty well"
For how long will we be forced to endure different versions of the same article?
The study said 86.66% of the generated software systems were "executed flawlessly."
Like I said yesterday, in a post celebrating how ChatGPT can do medical questions with less than 80% accuracy, that is trash. A company with absolute shit code still has virtually all of it "execute flawlessly." Whether or not code executes it not the bar by which we judge it.
Even if it were to hit 100%, which it does not, there's so much more to making things than this obviously oversimplified simulation of a tech company. Real engineering involves getting people in a room, managing stakeholders, navigating conflicting desires from different stakeholders, getting to know the human beings who need a problem solved, and so on.
LLMs are not capable of this kind of meaningful collaboration, despite all this hype.
AI regularly hallucinates API endpoints that don't exist, functions that aren't part of that language, libraries that don't exist. There's no fucking way it did any of this bullshit. Like, yeah - it can probably do a mean autocomplete, but this is being pushed so hard because they want to drive wages down even harder. They want know-nothing middle-managers to point to this article and say "I can replace you with AI, get to work!"...that's the only purpose of this crap.
I think there is less of a conspiracy, and it's just pushing investment. These AI articles sound exactly like when the internet was new and most people only had a cursory experience with it and people were pumping any company if they just said the word internet.
Now that "Blockchain" has been beaten to death, they need a new hype word to drive mindless investment.
More than 80% of most codebases is boilerplate stuff: including the right files for dependencies, declaring functions with the right number of parameters using the right syntax, handling basic easily anticipated errors, etc. Sometimes there's even more boilerplate, like when you're iterating over a list, or waiting for input and handling it.
The rest of the stuff is why programming is a highly paid job. Even a junior developer is going to be much better than an LLM at this stuff because at least they understand it's hard, and at least often know when they should ask for help because they're in over their heads. An LLM will "confidently" just spew out plausible bullshit and declare the job done.
Because an LLM won't ask for help, won't ask for clarifications, and can't understand that it might have made a mistake, you're going to need your highly paid programmers to go in and figure out what the LLM did and why it's wrong.
Even perfecting self-driving is going to be easier than a truly complex software engineering project. At least with self-driving, the constraints are going to be limited because you're dealing with the real world. The job is also always the same -- navigate from A to B. In the software world you're only limited by the limits of math, and math isn't very limiting.
I have no doubt that LLMs and generative AI will change the job of being a software engineer / programmer. But, fundamentally programming comes down to actually understanding the problem, and while LLMs can pretend they understand things, they're really just like well-trained parrots who know what sounds to make in specific situations, but with no actual understanding behind it.
half the time hallucinating something crazy in the in the mix.
Another funny: Yeah, it's perfect we just need to solve this small problem of it hallucinating.
Ahemm..... solving hallucinating is the "no it actually has to understand what it is doing" part aka the actual intelligence. The actually big and hard problem. The actual understanding of what it is asked to do and what solutions to that ask are sane, rational and workable. Understanding the problem and understanding the answer, excluding wrong answers. Actual analysis, understanding and intelligence.
Please ignore the hundreds of thousands of dollars and the corresponding electricity that was required to run the servers and infrastructure required to train and use this models, please. Or the master cracks the whip again, please, just say you'll invest in our startup, please!
A test that doesn’t include a real commercial trial or A/B test with real human customers means nothing. Put their game in the App Store and tell us how it performs. We don’t care that it shat out code that compiled successfully. Did it produce something real and usable or just gibberish that passed 86% of its own internal unit tests, which were also gibberish?
It's great for things like "How do I write this kind of loop in this language" but when I asked it for something more complex like a class or a big-ish function it hallucinates. But it makes for a very fast way to get up to speed in a new language
The study said 86.66% of the generated software systems were "executed flawlessly."
But...
Nevertheless, the study isn't perfect: Researchers identified limitations, such as errors and biases in the language models, that could cause issues in the creation of software. Still, the researchers said the findings "may potentially help junior programmers or engineers in the real world" down the line.
🎵🎵 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 101 little bugs in the code. 101 little bugs in the code, 101 bugs in the code, Fix one bug, compile it again, 103 little bugs in the code. 🎵🎵
And how long did it take to compose the “assignments?” Humans can work with less precise instructions than machines, usually, and improvise or solve problems along the way or at least sense when a problem should be flagged for escalation and review.
At the designing stage, the CEO asked the CTO to "propose a concrete programming language" that would "satisfy the new user's demand," to which the CTO responded with Python. In turn, the CEO said, "Great!" and explained that the programming language's "simplicity and readability make it a popular choice for beginners and experienced developers alike."
I find it extremely funny that project managers are the ones chatbots have learned to immitate perfectly, they already were doing the robot’s work: saying impressive sounding things that are actually borderline gibberish
What does it even mean for a programming language to "satisfy the new user's demand?" Like when has the user ever cared whether your app is built in Python or Ruby or Common Lisp?
It's like "what notebook do I need to buy to pass my exams," or "what kind of car do I need to make sure I get to work on time?"
Yet I'm 100% certain that real human executives have had equivalent conversations.
And ironically Python (with Pygame which they also used) is a terrible choice for this kind of game - they ended up making a desktop game that the user would have to download. Not playable on the web, not usable for a mobile app.
More interestingly, if decisions like these are going to be made even more based on memes and random blogposts, that creates some worrying incentives for even more spambots. Influence the training data, and you're influencing the decision making. It kind of works like that for people too, but with AI, it's supercharged to the next level.
the CTO responded with Python. In turn, the CEO said, "Great!" and explained that the programming language's "simplicity and readability make it a popular choice for beginners and experienced developers alike."
This is also the kind of task you would expect it to be great at - tutorial-friendly project for which there are tons of examples and articles written online, that guide the reader from start to finish.
Other things like that include TODO lists (which is even used as a task for framework comparisons), tile-based platformer games, wordle clones, flappy bird clones, chess (including online play and basic bots), URL shorteners, Twitter clones, blogging CMSs, recipe books and other basic CRUD apps.
I wasn't able to find a list of tasks in the linked paper, but based on the gomoku one, I suspect a lot of it will be things like these.
What a load of bullshit. If you have a group of researchers provide "minimal human input" to a bunch of LLMs to produce a laughable program like tic-tac-toe, then please just STFU or at least don't tell us it cost $1. This doesn't even have the efficiency of a Google search. This AI hype needs to die quick
This research seems to be more focused on whether the bots would interoperate in different roles to coordinate on a task than about creating the actual software. The idea is to reduce "halucinations" by providing each bot a more specific task.
Similar to hallucinations encountered when using LLMs for natural language querying, directly
generating entire software systems using LLMs can result in severe code hallucinations, such as
incomplete implementation, missing dependencies, and undiscovered bugs. These hallucinations
may stem from the lack of specificity in the task and the absence of cross-examination in decision-
making. To address these limitations, as Figure 1 shows, we establish a virtual chat -powered software tech nology company – CHATDEV, which comprises of recruited agents from diverse social identities, such as chief officers, professional programmers, test engineers, and art designers. When presented with a task, the diverse agents at CHATDEV collaborate to develop a required software, including
an executable system, environmental guidelines, and user manuals. This paradigm revolves around leveraging large language models as the core thinking component, enabling the agents to simulate the entire software development process, circumventing the need for additional model training and mitigating undesirable code hallucinations to some extent.
AI chatbots like OpenAI's ChatGPT can operate a software company in a quick, cost-effective manner with minimal human intervention, a new study has found.
Based on the waterfall model — a sequential approach to creating software — the company was broken down into four different stages, in chronological order: designing, coding, testing, and documenting.
After assigning ChatDev 70 different tasks, the study found that the AI-powered company was able to complete the full software development process "in under seven minutes at a cost of less than one dollar," on average — all while identifying and troubleshooting "potential vulnerabilities" through its "memory" and "self-reflection" capabilities.
"Our experimental results demonstrate the efficiency and cost-effectiveness of the automated software development process driven by CHATDEV," the researchers wrote in the paper.
The study's findings highlight one of the many ways powerful generative AI technologies like ChatGPT can perform specific job functions.
Nevertheless, the study isn't perfect: Researchers identified limitations, such as errors and biases in the language models, that could cause issues in the creation of software.
The original article contains 639 words, the summary contains 172 words. Saved 73%. I'm a bot and I'm open source!
Future software is going to be written by AI, no matter how much you would like to avoid that.
My speculation is that we will see AI operating systems at some point, due to the extreme effectiveness of future AI to hack and otherwise subvert frameworks, services, libraries and even protocols.
So mutating protocols will become a thing, whereby AI will change and negotiate protocols on the fly, as a war rages between defensive AI and offensive AI. There will be shared codebase, but a clear distinction of the objective at hand.
That's why we need more open source AI solutions and less proprietary solutions, because whoever controls the AI will be controlling the digital world - be it you or some fat cat sitting on a Smaug hill of money.
EDIT: gawdDAMN there's a lot of naysayers. I'm not talking stable diffusion here, guys. I'm talking about automated attacks and self developing software, when computing and computer networking reaches a point of AI supremacy. This isn't new speculation. It's coming fo dat ass, in maybe a generation or two... or more...
That all sounds pointless. Why would we want to use something built on top of a system that's constantly changing for no good reason?
Unless the accuracy can be guaranteed at 100% this theoretical will never make sense because you will ultimately end up with a system that could fail at any time for any number of reasons. Predictive models cannot be used in place of consistent, human verified and tested code.
For operating systems I can maybe see llms being used to script custom actions requested by users(with appropriate guard rails), but not much beyond that.
It's possible that we will have large software entirely written by machines in the future, but what it will be written with will not in any way resemble any architecture that currently exists.
I don't think so. Having a good architecture is far more important and makes projects actually maintainable. AI can speed up work, but humans need to tweak and review its work to make sure it fits with the exact requirements.
Of course, if you look far enough into the future. Look far enough and the whole concept of "software" itself could become obsolete.
The main disagreements are about how close that future is (years, decades, etc), and whether just expanding upon current approaches to AI will get us there, or we will need a completely different approach.