· 4 min read

Programming is no longer the main skill of SWE

When times change, we need to adapt

I recently used Claude to fix an issue autonomously, which I hadn’t thought possible just 1 year ago. Yet we still debate what frontend framework to use. “Should it be React or Angular?”. The premise is simple, frontend frameworks allow us to do more in less time. They decrease the amount of boilerplate needed and optimize the development experience. But why would we even need a frontend framework if AI can generate the exact code we need in plain JavaScript? AI keeps getting better at development and has already surpassed many SWEs at various skills. After all, aren’t Vue, React, and Angular just different solutions to the same problems. Problems that AI can solve directly. You could argue that having LLMs generate code in a framework would allow us to more efficiently debug the code, since reviewing plain JavaScript would take way longer for us. But what if agents are able to generate perfectly structured plain JavaScript that doesn’t require any modifications, would frameworks still have a place? Maybe this would make frameworks obsolete.

If we continue on that line of thinking we can go even further. If, in time frameworks become obsolete, entire programming languages will become obsolete. At first we had compilers that would translate human readable code to machine code. Nobody directly reads machine code since compilers have taken that burden of our shoulders. We trust compilers enough to do that job for us and we don’t verify its output. This applies to frontend frameworks as well. We’ve been trusting the main frontend frameworks to do the same thing for us, we don’t verify the plain JavaScript they output. It is just another abstraction layer that we fully trust.

What if AI is another abstraction layer that we will start to trust, removing the need to read anything it outputs? In time we will sufficiently trust its output. In that case, what would be the actual benefit of having agents develop in programming languages at all? Why would they not just ouput assembly and tell us what the code is doing in plain English? I think we are in this transitional era. Natural language will become the programming language. Machines will explain to us what they’re doing so we can review it, removing any need to write in programming languages.

Famously the F4 Phantom II fighter jet did not have an internal machine gun. Military leaders argued this was not necessary since their missiles would remove the need for the fighter to carry one. This proved not to be the case as the Vietnam war showed machine guns were still necessary to combat older fighter jets 1. Years later, not all variants of the recent F35 fighter jets include a machine gun 2, just like the F4 Phantom II did 60 years ago. Therefore they were on the right track but it was not the right time yet. I think this is the case with programming languages becoming irrelevant in time. I am wrong today, but I think it will be inevitable.

But what will be the main skill that SWEs need? I think more than ever it will be our adaptability. Deep knowledge about programming languages will no longer be relevant for most people. In line with point 19 of Harari’s book 21 lessons for the 21st century3 I think that continuous learning will be the main skill required to be successful. We will need to keep an overview of the entire context to use all of these new tools that are now at our disposal. But to do so you must experiment with these new tools and try to incorporate them into your workflow. Find out what works today, not in the long run. As long as we stay technologically curious it will be fine. In the long run there will be no more “React expert”, maybe learning to code in general will no longer be relevant. It’s about learning to learn, whatever the next thing will be.

Footnotes

  1. The Aviation Geek Club - Dario Leone

  2. Lockheed Martin F-35 Lightning II - Wikipedia

  3. 21 Lessons for the 21st century, chapter 19 - Yuval Noah Harari