Why programming is going get lot tougher for humans
4 min read

AI coding assistants have been a great boon for both coders and non coders alike. I can now see children creating simple programs without ever learning to code and experienced coders using them in their day today work to be more productive.
Without a doubt, AI coders are getting both popular and better. Google’s Jeff Dean claimed that in 1 year they will be as good as a Junior engineer.
To understand the impact of AI coders on the industry and the art and science of software engineering, I always give example of AutoCAD. Once upon a time people use to draw engineering diagrams on piece of paper. These were well paid jobs and considered highly skilled. As Autocad like software became widespread it did not destroy the job of draftsman but rather create far too many folks who could design using AutoCAD. The salaries went down but we saw a boom of better designed cheaper buildings and products. But there is something else happened. It is totally impossible now to design something in Autocad and then just modify its pieces through human drawings. It will be incredibly hard to design something as a hybrid process between computer design and manual design. This is because a lot of human design constraints such as inability to zoom in zoom out on a deign simply do not exist in software.
We are about to see the same revolution in computer programming. A lot of computer programing best practices are constrained by not real world constraints but things like human cognitive load.
For example, micro-services architecture isn’t really great in itself but it is very good for large organizations so small teams can focus on their work and spend less time in design alignment meetings.
AI coders wont have such constraints. They will have different constraints. At some time AI coder’s compute time will become major cost center and at that point, companies would insist that the code writing process be “AI First” so the code base is more friendly for AI coders.
I expect this might mean more monolithic code and more verbose code that provides more context to AI agents.
Soon we are going to find that AI agents might be able to rewrite your entire codebase with high level of accuracy in matter of minutes. Want to migrate from AWS to GCP ? It could me a 1 hour job for you 20M lines of code.
Few trends I predict:
Twitter Bootstrap like boilerplate for large projects.
I think soon we will move to a more declarative way of defining entire software process. A bit like Docker but for your entire software process. Many large projects code bases will be written by 100% by specific AI agents and you will be encouraged to use them if you are starting a new project.
This would then be maintained in a source repo instead of maintaining a codebase. Codebase might end up becoming opaque for human programmers entirely.
Meta Programming
Once AI does most of the coding, humans will not be expected to write or modify that code at all. Instead humans will add to that code using a meta language or meta programming. Humans will in short write plugins to the main software to modify its behaviour in ways AI cant.
Formal verification
Today we write tests and insist on certain level of coverage. Then we have integration tests etc. AI will be able to verify code behaviour without actually running the code. It will be able able to write tests in totally different way than we are used to to give us very high confidence in tis behaviour.
Directly writing binaries
Why should AI even bother writing a python script when it can directly create the binary ? Why should AI write a .java when it can directly produce .class file ? We are still far from this but I expect we will be there in next 5 years.
Programming languages exist because humans have cognitive issues reading and following binary code. Machines can directly write such code. AI models trained on binary files might be able to train better and produce better binaries.
Conclusion
All this means writing software will have AI as its main character and we will be side characters. Tooling and sometimes even programming language syntax will evolve to make it easier for AI to write code and humans will end up becoming its assistants. In next two years we will have code bases that will not make sense to humans at all.
We will stare at the code with same level of confusion as we do when we accidentally open an EXE file in a text editor.