AI has made a big splash in the media, and for good reason. But I don’t think AI is likely to eliminate programmers any time soon.

The AIs coming out today are a big leap forward in sophistication and capability. They can mimic conversation convincingly in a wide variety of scenarios, write papers, and generate convincing art.

More relevant to coders, they can scaffold call chains from requirement, infer integrations with external systems, and refactor code.

All of this is pretty impressive, but i’m not worried about being replaced. AI may stand for Artificial Intelligence, but the name is a bit of a lie. Our current approach to AIs fundamentally isn’t really intelligent. AI can’t set goals, it can only guess how to achieve a given goal based on (admittedly enormous) previously analyzed samples.

Think of other kinds of engineering like electrical or mechanical engineers. Their modeling tools have long automated significant amounts of work, including analysis or even base model generation. But engineers haven’t been put out of work. Even if most problems have fairly standard solutions and computers can automate large partions of work, there still needs to be a human who can define goals and match the problem to known solutions.

Fred Brook’s No Silver Bullets was formative for my opinions on the nature of programming. He explicitly addresses AI if you want to dig deeper.

In short, it’s hard to define goals and state problems clearly. For the experienced, the danger is solving the wrong problem more than solving the problem incorrectly. The heart of programming is understanding problems and stating their solutions precisely enough that a computer can execute it. AI might raise the level of abstraction, but it can’t free us from identifying and expressing what we want (which was the hard part to start with).