philipbohun.com

gitlab | github | youtube | twitter

blog dark mode

AI will not Replace Programming Languages

2024-03-13

The advent of accelerating progress in LLMs (Large Language Models) has prompted some to declare that the profession of programming will eventually phase out. Sometime in the near future we will all communicate with AI in natural language and AI will do all the programming. I think this is false.

The reason human programming languages, and therefore human programmers, will not be replaced is the same reason physicists, biologists, etc. have their own jargon: precise and concise communication. This becomes most obvious when we look at the special notations humans have created for communiation.

Natural language has not replaced music notation or math notation. Why? These notations are compact, efficient, and precise ways of communicating music and math. A piece of music written for a violin that is only two pages of music notation might be 50 or more pages of natural language, and impossible to sightread quickly.

The same is true of programming. Good programming languages are designed to be precise, efficient, and compact notations of communcation. After all, that is the point of a program; to communicate to the author, other readers, and computers, a set of steps to perform a computation. Natural language is rife with syntactic and semantic ambiguities. Because of this natural language will never be able to compete with programming languages, just as it cannot compete with music notation.

Let's say natural language does kill off programming languages in the future. "Prompt engineers" will eventually find that natural language is a cumbersome and awkward way to communicate precisely with computers. Some smart ones will invent a more consise, efficient, and compact notation with which to talk to computers. They might end up calling this notation a "programming language". These smart "prompt engineers" will outcompete the ones who have to maintain billions of lines of walls of text. They will be able to communicate with computers faster, more efficiently, and be able to maintain and modify their applications easier with a professional notation.

The natural progression will be amusing to those who know what will happen.

  1. The hype and fad of natural language programming "prompt engineering", will take off
  2. Copious amounts of code will be generated in existing languages, much of it too "clever" to be understood by humans, while at the same time many professional programmers will lose their jobs
  3. Codebases will bloat beyond imagining, and eventually start failing under their own weight. Who will have a 50 billion line context window to find and fix bugs in <APP>?
  4. Systems will have to be written again, from scratch, by people who know how to program

Of course, there's no way for me to know if this is exactly what will happen in the future, but I think some version of it is a likely scenario.