The programming subreddits have been flooded with memes about AI replacing developers. Of course these posts are almost universally humor but the comments always have some worried opinions, typically from less experienced programmers such as CS undergrads concerned about their career prospects. I suppose I could imagine their alarm as AlphaCode placed above the 50th percentile in a coding competition and CS students typically practice similar problems to ace job interviews.
I’m a technical fellow in an AI program at MIT and I’m of the opinion that AIs replacing programmers is an almost laughable proposition. In a conversation about generative AI at the Computer Science Artificial Intelligence Lab, other colleagues agreed that AI won’t be replacing developers. Professor Solar-Lezama highlighted a few current capability limitations where AI falls short:
- Scale: Commercial problems are large, complex, and interconnected. Even the best models cannot ingest codebases with tens of millions of lines of code in one shot.
- Locality: Problems often require modifications to existing codebases in many different locations. This is beyond the ability of current AI on a large scale.
- Abstraction: AI doesn’t organize code into logical units. Abstraction is one of the central principals of object oriented programming that supports reuse, maintainability, and understandability.
Lastly there is a common factor that won’t change even as AIs get better: project specification. I’ve often heard from friends in private industry that “AI will replace me as soon as the PM can accurately describe what he wants”, a jab at our fellow teammates and eternal enemies in project management. Once someone can create a specification understandable by a programming AI, they can replace a programmer. But of course creating a machine readable specification is called programming.
So what’s going to happen? In the 50s, the FORTRAN Automatic Coding System reduced development time by an order of magnitude allowing the humans to do more critical thinking instead of tedious tasks. Hopefully AI assistance will similarly allow us to focus on the real computer science, not rewriting basic functions or finding that unclosed parenthesis. And yes, you read that right, it was called the FORTRAN Automatic Coding System; we’ve been made “redundant” before.