The code that ChatGPT can't write
datachimp.app
datachimp.app
ChatGPT doesn’t worry me though, at least not yet. It’s not reliable enough to do most things people will pay for. Can it write some python code? Sure, and sometimes quite impressively. But too much of the time it’s wrong. And as long as that continues to be true, software engineers will keep their jobs. Ditto with essay writing and even holding a coherent conversation, frankly.
I happen to think we’re at a local maxima in terms of what purely statistical language models can achieve. I think we’re going to need some planning, some working memory, and a knowledge graph to get things working, but I could be wrong.
These models ain't gonna make any jobs obsolete (for now), just redistribute productiveness between those who will eventually learn how to harness them and those who won't.
It's not like you can give code to a non-developer and they can use and maintain it
I'm fine with that. But that's the fear.
This trend was always inevitable IMO. The existence of ChatGPT, despite its many flaws, makes that very apparent.
ChatGPT targets low-end, offshore customer service and phone call answering applications for technical support. Neither it nor Copilot is any replacement for a software developer.
There's going to be a lot of social and economics changes by this new tech but I don't think code will be the most affected area (for now of course)
ChatGPT will be sold (and quite profitably) as a chat support agent for customer service and technical support questions. And it will do a great job at that.
And the truth is, I don't see any way it could work. Too many questions. Would product owners interface with the language model directly? Would they trust it to do devops? to debug? What would happen if the behavior of the system wasn't quite what they wanted? What if they ran into situations that required very in depth analysis of performance via logging? Would/Could a large language model orchestrate all of this?
At the end of the day, what devs are paid for is their knowledge of a complex system. That is always going to be needed.
Why does it have to be all or none? Why can't it be incredibly incremental?
> At the end of the day, what devs are paid for is their knowledge of a complex system.
I've turned to ChatGPT to answer questions to things I don't know 2-3 times this week. I can only imagine where this technology is headed in the next 5 years.
However, you can make the argument that I knew "exactly" how to game it/what to ask because of my experience. I used what I know to ask specifically for what I don't know. :)
On HN the level of engineering is very high and many people here note that the code chatgpt provides is often subtly wrong and, like this article states, it cannot generate code for many problems or it is hard to describe the issue in a natural language like that. The thing is; most programmers I see have all the same issues however they cost money and cannot work as fast and tirelessly.
As an experiment, if you need to do one, just pick a random cheaper (although I have seen more expensive doing exactly the same; problem is, the amount of 5 stars pushed the rate up but might not mean good or competent code) coder from upwork/fiverr and give them a simple project; something CRUD, in Laravel or node; something chatgpt will come up with no problem. And check the screenshots (upwork 'spies' on devs to see if they are working) of them trying to 'solve the issues'; most of them will be google/SO searches and trying to fix pasted code so it works.
Of course I cannot say that this is most programmers, however, in my experience of 20+ years hiring devs from upwork (which was elance and something else before it was called upwork), it is most programmers. They now, if smart, will use chatgpt; but so can you... Saving time and money.
Some of the big money making entrepreneural devs (usually marketers) I know don't understand code at all (their code is always very weird to read as they don't understand basic concepts), but are still coding and making good money providing solutions for their clients. Chatgpt is a dream come true for them: speeding up their work 1000x while everything else stays the same.
This probably would only work if you had a sample of work from said devs from before the availability of GPT.
If you hire someone to do a job ChatGPT can do now.. they're going to use it
Also, when it starts costing money (which @sama said it will), they won't use it, just like they are not using copilot because it's 10$/mo.
My immediate response to all the rightly-deserved excitement for ChatGPT is to reread that essay and reflect on whether this new tool will provide me more than marginal gains in my productivity. Experimenting with it a bit over the last day, my initial answer is, no, this doesn't provide more than marginal gains outside toy examples.
These tools may very well factor into my workflow in the future, but I don't see them fundamentally changing the way I construct, support, debug, and maintain software.
One related experiment, however, already suggests the result. Someone tried to get ChatGPT to solve advent of code challenges: https://github.com/golergka/advent-of-code-2022-with-chat-gp.... These challenges are very clear, and it already seems to struggle to get the answers. One the second day, it took 12 tries to get it right. If it struggles this much with clear requirements, I don't think it'll do well with vague ones.
Case in point, I got it to write a chrome extension to highlight new comments in Hacker News: https://github.com/HartS/gpt-hacker-news-extension
It's not perfect, it doesn't keep track of what the user actually saw for example. It just stores a timestamp for each opened thread and highlights the comments that are newer than that timestamp.
I wouldn't have thought to solve it that way, but I definitely think its successor will be capable of coming up with "good-enough" solutions for a lot of problems humans currently work on.
Actually, humans are often just coming up with "good-enough" solutions in the first place.
Regarding new comments: You can actually ask dang by mail for this exact feature. It already exists but still in beta or so. I have it and adore it. It works like this: When you go to a comment thread you've been before, it shows all new comments with a vertical red line to left side of the comment. Great feature. I already use it for years?! Could be rolled out actually... :D
Heh, I wonder when economic AIs will arrive
We're going to design a (language) application that performs the following tasks, delineated by semi-colons:
Then I listed about a dozen high-level user stories, separated by semi-colons, and ended the list with a period. Then I clarified my instructions like this:
We will design each step together, where you ask me for any specifications needed to complete the step and I respond with those specfications. When you feel we have completed designing a step, ask me if I have any questions before proceeding to the next step.
It started with a high-level recap of my user stories, asked if I was ready to proceed, and then began to describe the first step. Over about two hours of back-and-forth, I ended up with a 20-page document of high-level architecture interspersed with code samples, db schema samples, and answers to questions that popped up during the "discussion." And I got about halfway to a working prototype during those two hours.
BLEW me away how well it worked.
The purpose of ChatGPT (as stated by the devs) is to help improve the ability of AI agents to participate in conversational dialog. In other words, they're trying to make a software agent that can take chat calls for support and stuff like that.
Copilot, on the other hand, is (sometimes) tasked with writing code from a concept or comment and -- even more often -- used to "autocomplete" some line of code you are already typing, or to suggest the next line of code that's most likely to appear in a sequence.
NEITHER program, however, is capable of solving any new problems or creating any information -- such as information about how to write software that does something which has not been done before.
Both ChatGPT and Copilot (and all other LLM software) is only capable of spitting out the next most likely word based on what you have typed and what it has analyzed in the past. Therefore, neither program will be able to offer us any new ideas or solve any new problems. Neither program can create software architecture nor perform debugging.
Having said that, many companies will pay for ChatGPT because it's a nicer and faster chat agent than the ones we have now -- even better than many of the human ones for support-type tasks. And Copilot is a fantastic timesaver that I gladly pay for because it often does suggest the next correct line of code based on my own typing.
Strong assertion that I think will be proven wrong in the next decade, barring any catastrophes. Maybe not a direct descendent model, but likely one that has quite a bit in common.
Writing is an iterative process where the ability to detect and delete the weakest parts is crucial.
A never ending code review where the revisions become the responsibility of the reviewer. That won’t burn anyone out.
Or you get to write prompts.