I am sorry to tell you, but AI is exceptional for engineering. Just make the AI also generate a proof that its code meets the spec. That's what human engineers should already do, but it was costly, because the tools were not good enough and the engineers not educated enough. AI is going to cut right through that Gordian knot.
This should not be surprising: There is a large intersection between engineering and mathematics. And mathematics is art.
Writing a spec thorough enough for AI to generate code that verifiably meets in and solves your problem means you're still programming, but specs instead of systems.
That was always the pitch of higher level programming. Pseudocode is slightly more of a spec than compilable C; C is slightly more of a spec than assembly language. It gets advertised as being "all you have to do is write a spec" and then it becomes just programming later.
Regardless, the studies have already demonstrated this: As you go higher-level, you write roughly the same amount of code and bugs per line, but also implement more features per line.
An AI tool will be ready for use when it demonstrates that same capability of "same bugs per line, more features per line".
Sure, the human element will still be there. But note that the detail of your spec will converge to the natural "resolution" of your problem as the power of your AI increases.
But at what scope? The how will always matter. Your AI could design a system that bankrupts you on the first day. To prevent that you need to specify constraints and it's turtles all the way down. It would free you from spending time on areas you don't care about, but that's already true with SaaS.
The how that matters must be part of your spec, of course. It is turtles all the way down, but the point is that apart from the top turtle, all the other turtles will be AIs. That's a big difference.
Just the step from "program" => "spec" is already a big one. So big, that it is rarely done today. Test-driven development is an attempt at this, but the problem is that tests cannot truly verify a spec. Proofs can. Of course, you can combine tests and proofs, for example proofs for correctness, tests to make sure other measures like speed and cost are sane. But if you want to be absolutely sure, you will need to replace all tests by proofs.
Hehehe. Well, the important ingredient missing from this comic strip is proof. You can see proof as code, if you like, but the important thing here is that you can trust the proof generated by an AI without having to look yourself at it.
Most people don't understand proof, but if you don't understand proof in 10 years, you will be out of a job as a programmer.
> if you don't understand proof in 10 years, you will be out of a job as a programmer.
No, that's not gonna happen. Can you write a proof of an order for you go to go a fresh market to buy ingredient of a menu I want to cook? "Hey, go buy ingredients for my noodle menu whose result is my taste"
Just yesterday I was playing with chatgpt and found an error between the code it generated and the explanation of the code. It contradicted itself.
However when I caught the error I asked it to further explain since it appears to contradict the code it generated. It then came back with an apology and it did state it made a mistake and was able to understand the error and fix it. Although I was specific about the mistake. I might try again later today to do the same test and see if it learned or generates the same error again .If it does I will ask it to confirm that its explanation and code match versus pointing out the error.
Even your single datapoint explanation/POV/understanding will help to accelerate this entire process.
I have to keep reminding programmers that Co-Pilot exists, is real, and makes LESS mistakes than entry-level datagrunt software engineers. And it costs pennies of electricity to run daily.
All capitalism is: the search to maximize efficiency; monotonous human labor (~80%) is the most expensive part of this equation... this is not an "if," rather "when" situation. Putting your head into the sand will be a safe place for lesser programmers to still make money, for at least another few years.
But as was said elsewhere in this thread: if you do not know how to write PROOF code to VERIFY these inevitable AI-assistant-coders' outputs, you will not have a job. Human mindpower cannot compete in the bruteforce arena — all ChatGPT is right now is a bunch of autistic middle-aged asshole trolls with WAY TOO MUCH MONEY, and EVEN MORE TIME (to play around with this).
I encourage you as a more-artistic-than-technical (but still fairly intelligent) person to "just pretend" that this is your new Fiverr-tasker. Because it is already, and will be once more-widely understood / accepted.
> when I caught the error I asked it to further explain since it appears to contradict the code it generated. It then came back with an apology and it did state it made a mistake and was able to understand the error and fix it[..]
I sense that "I'm sorry, Dave..." isn't quite as far away as we thought...
That is easy. The same way as interactive theorem proving works already today, and for the last 30 years or so. It is the very definition of a proof that you can check it.
This should not be surprising: There is a large intersection between engineering and mathematics. And mathematics is art.