I don’t think we’re anywhere close to making AGI, so the short answer is no. However, I can see AI playing a big role in development going forward.
It’s the age-old discussion of “If we can specify a problem precisely enough, can we just generate the code for it?”.
Well, yes, you can. We do it all the time. But it’s still programmers that write this specification – in higher-level programming languages. At some point, the application of advanced AI may just be yet another step in the compiler, though it’s hard to imagine, as you really do want determinism in the compiler, not some AI making more or less intelligent decisions for you.
I can definitely see “AI” taking part in the optimization process in the near future, the heuristics for deciding things like “should this be inlined” are already basically opaque to users.
Yeah, something like that I can imagine, as the effects of that shouldn’t change the program. And for example in a linter, if it understood what you did at large, it could give some really good tips.
What I was imagining there, was that it took liberal decisions based on how it interprets your specification.
For example, instead of writing a for-loop that takes two lists, subtracts each element from the other and puts each loop-result into a list, you would just tell it “Subtract listA from listB and put that into listC”.And then it might misinterpret that as you meaning you want it to calculate the average of each list and subtract those averages from each other, or something like that.
Well, as I said, hard to imagine, especially when many high-level languages already allow you to express the above example very precisely as e.g. “val listC = listA.zip(listB).map((a, b) => b - a)”.
Here’s the answer from the article:
“So will AI replace programmers? No, it won’t. Programmers have more to gain from AI use, in fact. Besides, AI systems will always need programmers to design them.”
I agree.
deleted by creator