Why I think AI will fail to replace programmers

Nassim

Some are claiming that programming is going to be automated completely by AI in the near to long term future.

In contrast, I think that if we continue to develop AI using methods coming from statistical mathematics (machine learning, needing data to make predictions) we won't.

First, I must make clear that I'm biased. I studied computer science in school, I like programming and worked as a software dev. It would be against my interests for programming to be automated.

With this disclaimer out of the way. Here are my thoughts :

Programming is a domain that requires precision. Machine learning based techniques only works well in domains where a small margin of error is acceptable (a.k.a imprecision). Natural language translating and art are two examples of fields where imprecision can be tolerated to some extent. Errors in an art piece can be interpreted as a stylistic choice.

Driving is also a domain where imprecision is not tolerated as the consequences of errors are devastating.

AI wasn't able to automate driving precisely because of that. It can work X% of the time but suddenly fail in an unexpected situation not covered by the training data.

ML techniques uses probability and statistics to derive their predictions. By the nature of those fields the answers derived can never be determinist. When things fail you can't point to a list of things done that led to the result and you can't reproduce those steps to get the same result.

It follows that if AI wasn't able to fully automate driving it won't be able to fully automate programming. That's the core of my argument.

How many times have you seen code that looked right while using chatGPT but is actually wrong. I think this behaviour is a fundamental flaw and not something that can be fixed with more data or anything as long as AI is based on a statistical/probabilistic approach.

You can't treat the AI coder the same way you would a compiler and work on a higher level of abstraction because you can never trust it fully. You can therefore never take for granted the layer beneath.

Thanks for reading.

TLDR of my argument:

  1. I argue that automating driving and automating programming are problems of the same nature.
  2. AI has failed to automate driving. (Despite enormous efforts)
  3. Therefore, it follows that AI will fail to automate programming as well.