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.
It’s interesting to hear your perspective on the recent flood of AI memes in the programming subreddits. As a technical fellow in an AI program at MIT, your insights on the limitations of AI in replacing programmers are reassuring to those concerned about their career prospects.
The fact that current AI is limited in scale, locality, and abstraction, along with the ever-important project specification, shows that “there will always be a need for human programmers”.
It’s also fascinating to see how AI assistance can free up human programmers to focus on more critical thinking tasks.
Thanks for sharing your insights!