AI Means More Developers
Software trends towards higher abstractions. You can do more with less. Not only do developers never need to touch hardware anymore, but they might not even need to interface with public cloud providers and might opt to use developer-friendly middlemen. That means less code to write (and maintain). Less code to write means a narrower range of skills needed to get started. This lowers the barrier to entry. The average developer doesn’t need to know about Linux system administration or manual memory management (and that’s ok).
AI tackles the other end — how do we write and debug code faster? You must maintain it, but the iteration loops are much quicker. Generate a draft to start with. Debug with AI assistance. Experienced developers can be much more productive. The intuition around what code generation is right and wrong saves developers significant time writing the code. I’ve often found I’m still guiding the models to generate the right code, but I can outsource the work. Knowing what you want and how to do it, combined with AI, makes you a powerful developer. More productive developers should mean even higher salaries for the best developers.
On the other hand, less experienced developers can get away with gaps in their knowledge. They could generate a bunch of code with AI, but they won’t be able to maintain it or accurately debug the inevitable mistakes. But instead, there are enough developer-friendly primitives for junior developers to deploy to (countless frontend frameworks and hosting APIs). Less experienced developers, who might not have been able to deploy an end-to-end application, might be able to cobble together a cloud-hosted function partially written by AI.
Finally, the middle of the pack might get squeezed out. Developers that can write code but can’t wrangle dependencies or reason about code quality or maintenance will suffer. On the other hand, experienced developers will take on some of their work (as part of being more productive), and less experienced developers will use AI to deploy work more on par with their work.