The End of Programming as We Know It

Tim O’Reilly, founder of O’Reilly media, is someone to listen to. He popularized the term “open source” and ”Web 2.0” and has been in the industry for over 40 years. His observations about the changing landscape of programming and the web are a techo-optimist’s viewpoint backed by his deep experience.

The article talks about how programming has already drastically changed. The first wave of computers required programmers to connect physical circuits to perform calculations. Then machine instructions replaced that tedious process with physical flip switching, soon to be followed by mainframes coded on Assembly language. Assembly was the first human-like language used for programming machines.

Modern programming took it further with languages like Fortran, COBOL, C, C++, and Java. These were still abstract, though, and the BASIC language was the first to show how someone who could understand English could become a programmer. Many thought at the time that this would be the end of programming, and it was, in a way. It was the end of the programming that some people knew. After that disruption, new programmers entered the field and more companies wanted programmers who knew how to use the latest tools.

The web ushered in a new “end of programming,” but just as before, demand only grew. As software or websites were easier to create, their price fell, allowing developers to create solutions that more people were willing to pay for.

Chat-oriented programming

Human language has become the interface for machine code, once again moving away from abstraction and towards a more widely available instruction set. If anyone can program, is this the end of the job of professional programmers?

O’Reilly does not think so. Instead, he argues, the period we are entering is one where the job of programming will be transformed, but the skills required will endure.

Learning from History

The Industrial Revolution in America replaced skilled home craftspeople with water- and steam-powered machines. These machines were often operated by an “unskilled” worker, and wages at the beginning of this revolution were depressed. At first, factory owners alone reaped the benefits of these new efficiencies. Eventually, the labor force became more and more skilled and the machines more and more specialized, and the “unskilled” labor force shrank.

Why? The labor force became machine-literate. They learned by doing, teaching themselves how to repair the machines, improve them by designing new additions and efficiencies, and in many cases, invent entirely new applications and industries.

People will be creating, using, and refining more programs, and new industries will be born to manage and build on what we create. Lessons from history tell us that when automation makes it cheaper and easier to deliver products that people want or need, increases in demand often lead to increases in employment.

What Programming IS will change

We’re in the middle of inventing a new programming paradigm around AI systems. When we went from the desktop into the internet era, everything in the stack changed, even though all the levels of the stack were the same. We still have languages, but they went from compiled to interpreted. We still have teams, but they went from waterfall to Agile to CI/CD. We still have databases, but they went from ACID to NoSQL. We went from one user, one app, one thread, to multi distributed, whatever. We’re doing the same thing with AI right now.

Sam Schillace, Deputy CTO, Microsoft

With AI, we are currently experiencing the 70% problem. Engineers can be more productive with the various “co-pilot” tools, but the last 30% of a complex problem requires human intervention and thought. Further, it requires enough experience to understand how to debug and guide AI to the correct solution. A great engineer still requires strong systems thinking, intuition, and experience. They just don’t accept what the AI suggests, their expertise is what keeps the code in the stack maintainable.

Much like writing has become much easier for non-writers, truly great writing still requires creating an idea or opinion worth writing about, and then requires arranging ideas into a coherent story. Programming too, will change to be the act of arranging ideas into executable programs.

The Opportunity

As the history lesson suggested, there are opportunities here to be the change we want to see. If AI co-developers make programmers ten times as productive, the “programmable surface area” of a business, of the sciences, of our built infrastructure will rise in parallel. If there are 20x the number of opportunities for programming to make a difference, we’ll still need twice as many of those new 10x programmers.

User expectations will rise in parallel. The better that software gets, the more people expect from it. Businesses that use greater productivity to cut costs will lose out to companies that invest in harnessing the new capabilities to build better services.