AI techniques will eventually be able to automate some kinds of programming tasks that allow developers to abstract away and do more with their time. But I can’t imagine an AI replacing human developers.
Let’s imagine for a second that an AI does get to be as good as humans at coding — you give them an written language spec, and they churn out code that’s as good as any other person.
First, anyone who’s ever tried to communicate via an english specification to developers knows that it can be incredibly hard to get exactly what you want. English specs tend to be fairly ambiguous, and require a lot of elaboration. To ever hope to get the right answer, a machine is going to require lots of feedback, or else an incredibly detailed specification.
Either way, that sounds like programming! It’s turtles all the way down.
If this AI eventually developers into a practical tool, it might change the level of abstraction for programming. We might write in plain english, and be able to elide a lot more, but we still will need to do an awful lot of work to get computers to do what we want them to do.
And right now, AI algorithms often make computers faster at tasks than humans, and therefore can do things like decision-making at scale better than a person. But rarely are they more accurate. For instance, the very next Slashdot story discussed Google’s Perspective, which uses AI algorithms to identify hate speech. It doesn’t work very well.
Of course, if AI does eventually help better automate the typical developer, it IS possible that the effect might be a reduction in the number of developer jobs. But, keep in mind that we’ve been making huge improvements in development automation since Grace Hopper built the first assembler. Every new layer of abstraction and automation to date has opened us up to be able to solve new, more complex problems to create more and more value for people.
There will always be plenty of jobs in telling computers what to do.