An average programmer's main job is to track down and fix bugs that shouldn't exist inside software that shouldn't exist build on frameworks that shouldn't exist for companies that shouldn't exist solving problems that shouldn't exist in industry niches that shouldn't exist. I'm 100% convinced that, if someone comes along and creates something that actually obsoletes 95% of programming jobs, everyone would very quickly come to the conclusion that they don't need it and it doesn't work anyway.
I am actually finding amusing that managers will generate 100k lines project with AI and then will start figuring out that it does not work as they want to. Then they figured out actual developers are needed to fix it, either in a very strict way telling AI what should happen (i.e. higher level programming) or directly fixing code generated by AI.
I know a small financial agency in the 00's that laid off their one-person IT department because they thought the computers would run themselves. It's honestly great that they're overselling AI, lots of messes to clean up.
edit: Ultimately there are going to be iterative pipelines with traditional programmers in the loop rearranging things and reprompting. Math skills are going to be deemphasized a bit and ___domain skill value increased a bit. Also, I think there's going to be a rise in static analysis along with the new safe languages, giving us more tools to safely evaluate and clean up output.
You're assuming that the AI is even generating anything that will make sense to a human. It seems inevitable we'll reach the point that for SaaS the AI will do everything directly based some internal model it has of what it believes the requirements are (e.g. it will be capable of acting just like a live web server), whereas for desktop and mobile apps, while that paradigm still remains relevant, it will generate the compiled package for distribution. And I imagine it would be unrealistic to attempt reverse engineering it. Fixing bugs will be done by telling the AI to refine its model.
Are you arguing that LLMs already provide the technology to do this or are you arguing that it "seems inevitable" to you in the sense that somebody might think it "seems inevitable" that humans will some day travel to the stars, despite doing so requiring technological capabilities significantly beyond what we have yet developed?
But why would anyone bother with using AI to generate human readable code if the AI can generate the final desired behavior directly, either on-the-fly or as executable machine code?
Because the AI's, at least right now, can't generate/change code so that it correctly does what's expected with the confidence intervals we expect. I've tried to get it to happen, and it just doesn't. As long as that's true, we'll need to somehow get the correctness to where it needs to be, and that's going to require a person.
A lot of people have already figured out at some tricks to improving code generation.
You can fairly easily update the “next token” choice with a syntax check filter. LLMs like ChatGPT provide a selection of “likely” options, not a single perfect choice. Simply filter the top-n recommendations mechanically for validity. This will improve output a lot.
Similarly, backtracking can be used to fix larger semantic errors.
Last but not least, any scenario where a test case is available can be utilised to automatically iterate the LLM over the same problem until it gets it right. For example, feed it compiler error messages until it fixes the remaining errors.
This will guarantee output that compiles, but it may still be the wrong solution.
As the LLMs get smarter they will do better. Also, they can be fine tuned for specific problems automatically because the labels are available! We can easily determine if a piece of code compiles, or if it makes a unit test pass.
Currently ChatGPT isn't, at least via public access, hooked up to a compiler or interpreter that it can use to feed the code it generates into and determine whether it executes as expected. That wouldn't even seem particularly difficult to do, and once it is, ChatGPT would literally be able to train itself how to get the desired result.
Precisely. I think people should consider the "v4" in "ChatGPT 4" as more like "0.4 alpha".
We're very much in the "early days" of experimenting with how LLMs can be effectively used. The API restrictions enforced by OpenAI are preventing entire categories of use-cases from being tested.
Expect to see fine-tuned versions of LLaMA run circles around ChatGPT once people start hooking it up like this.
It will have to describe these requirements in a way that a human can understand, and verify. The language will have to be unambiguous and structured. A human will need to be able to read that language, build up a mental model, and understand it is correct, or know the way to make corrections. Who do you think that person will be? Hint: it will be a specialist that knows how to think in a structured, logical way.
Sure, I agree with that. But it will very different to how programming is done today, and I'd suggest there'll be a lower bar to becoming capable of formulating such requirements and ensuring the software works as expected than there is now.
It’s pretty true, someone today on here wrote, “teach it to understand swagger”, I actually laughed, like I’ve used swagger and it often turns into a Frankenstein, and sometimes for good reason. I completely understand the sentiment and I like swagger.
I believe the world is wiggly, not geometrically perfect, intellectuals struggle with that because square problems are easier to solve. Ideal scenarios are predictable and it’s what we like to think about.
Have you ever had to use a sleep() intentionally just to get something shipped ? That’s a wiggle.
We’re going to try square out the world so we can use ChatGPT to solve wiggly problems. It’s going to be interesting.
Yesterday I tried to use a SaaS product and due to some obscurity my account has issues and the API wouldn’t work, they have a well specified API but it still didn’t work out, I’ve been working with the support team to resolve it, but this is what I call a wiggle, they seem to exist everywhere.
Hah. So true. The more I work on renovating parts of my house the more I see where a workers experience kicked in the finagle something. Very analogous to programming. All the parts that fit together perfectly are already easy today. It’s those bits that aren’t square, but also need to fit where the ‘art’ comes in.
Can AI also do that part? IDK, currently I believe it will simply help us do the art part much like the computer in Star Trek.
Actually chat gpt is quite good at understanding some kinds of wiggliness. I built a restful api and documented it in a readme.md file in the wiggliest of ways. I then asked chatgpt to turn the readme into a swagger spec and then give me a page that read the spec and gave me a nice doc page with api exercise tool. Both tasks it performed really well and saved me a whole bunch of time.
Yeah, but now ask it to write a program that uses this API and then let it debug problems which arise from the swagger spec (or the backend) having bugs. I don't think LLMs have any way of recognizing and dealing with bad input data. That is I don't think they can recognize when something that is supposed to work in a particular way doesn't and fixing it is completely out of your reach, but you still need to get things working (by introducing workarounds).
Have you tried it? If you copy the errors back into the chat I could imagine it working quite well. Certainly you can give it contradictory instructions and it makes a decent effort at following them.
Yes, I'm subscribed to poe.com and am playing with all public models. They all suck at debugging issues with no known answers (I'm talking about typical problems every software developer, DevOps or infosec person solves every day).
You need a real ability to reason and preserve context beyond inherent context window somehow (we humans do it by keeping notes, writing emails, and filing JIRA tickets). So while this doesn't require full AGI and some form of AI might be able to do it this century, it won't be LLMs.
Chatgpt has a token limit. If you exceeded it then it would have no way of delivering a good result because it would simply have dirtied what you said at first. My api was not huge, about 8 endpoints.
It can accept about 4k tokens, maybe 3000 words or 3500.
GPT-4 can now accept 8k or 32k. The 32k version is 8 times larger than the one you tried.
And these advances have come in a matter of a few months.
Over the next several years we should expect at least one, quite easily two or more orders of magnitude improvements.
I don't believe that this stuff can necessarily get a million times smarter. But 10 times? 100? In a few months the memory increased by a factor of 8.
Pretty quickly we are going to get to the point where we have to question the wisdom of every advanced primate having a platoon of supergeniuses at their disposal.
Probably as soon as the hardware scales out, or we get large scale memristor systems or whatever the next thing is which will be 1000 times more performant and efficient. Without exaggeration. Within about 10 years.
So people want to build a nuclear reactor on the moon, I think these things should probably live on the moon or better yet Mars.
That should be the place for experiments like this.
Lowery latency links back to Earth and first see how it goes.
Also you don’t think there will be resource constraints at some stage ? It’s funny we yelled at people for Bitcoin but when it’s ChstGPT, it’s fine to run probably tens of thousands of GPUs? In the middle of a climate crisis ? Not good.
Personally I don't think AI tools energy usage are comparable to BTC yet.
Also, with BTC it's literally burning it in an unproductive way for "improved security". It's like lighting a forest on fire to keep warm.
All the AI tools combined, last I heard, aren't consuming 0.5% of the world's energy usage. And even if they were, it would be absolutely bonkers to argue we should keep doing that when there were alternatives that accomplished similar goals without the energy usage (proof of stake)
I highly disagree. That might (might!) be true of some segments of the tech industry, like SV-based startups, creating products no one wants.
But it's definitely not true of the average piece of software. So much of the world around us runs on software and hardware that somebody had to build. From your computer itself, to most software that people use on a day-to-day basis to do their jobs, to the cars we drive, to the control software on the elevators we ride, software is everywhere.
There is a lot of waste in software, to be sure, but I really don't think the average SE works for a company that shouldn't exist.
I’m leaning in this direction too. I saw someone on Twitter phrase it quite well: “You can believe that most jobs are bullshit [jobs]. And you can believe that GPT-4 will completely disrupt the job market. But you can’t believe both.”
Bullshit jobs exist because upper management can't know exactly what everybody in the company is doing, which leaves opportunities for middle management to advance their own interests at the expense of the company as a whole. Upper management might suspect jobs are bullshit, but it's risky for them to fire people because the job might actually be important.
But upper management can know exactly what LLMs are capable of, because they are products with fixed capabilities. ChatGPT is the same ChatGPT for everybody. This makes firing obsolete workers much safer.
Everyone thinks only in terms of current needs and state of affairs of people when analyzing a future technology. No one thinks about the insatiable human desire for more and the higher expectations for that new normal that always meets the increased productivity available. Anything that automatically solves much of our wants is doomed to be static and limited.