Will AI Replace Coders? by Ed Lyons
Just about every programmer has given Generative AI a try in their development environment by this point, whether out of curiosity or fear. The hype around this technology is shouting at us everywhere. “BEWARE CODERS! You will be replaced by AI (you may escape if you subscribe to my paid newsletter.)”
It is true that there are incredible demos on the web, showing applications being generated, and functions being written with ease. I have tried it out. It is powerful, and it seems to be improving. All of my programmer friends are using it at least a little.
Should we be worried about our careers? The best place to start thinking about this is in the past. If you’ve been in the field for 20, or 30 years, or even longer, you will remember previous revolutions and marches to higher levels of programming.
I remember when programming required explicit memory management and everyone thought that was a good thing. Then garbage collection came along, and the masters of memory thought it was sloppy, inefficient, and wasn’t worth the tradeoffs. But it was the future for most programmers, and complaints about what “real programmers” did faded, and the culture changed.
I remember back in the year 2001 that I had a friend who was an extraordinarily good JavaScript programmer. He refused to use any third-party libraries. Even JQuery, spreading like wildfire, was unnecessary. He hand-coded everything he needed, just the way he wanted. Besides, libraries that he didn’t write sometimes contained errors or were not exactly what he needed. We admired him, but gently suggested that the future was using libraries. He scoffed. He wasn’t the first person to think this way.
He was like John Henry, the 19th century folk hero who matched his muscles against the new steam-powered drills in a race to carve out a tunnel, or the children’s story of Mike Mulligan and his steam engine in the 1930s, (based on a real event) who refused to accept that the new gas and diesel engines were better at digging out a basement. It is a familiar narrative. In the end, the old loses against the new, though their struggle is widely admired.
After a few more years, our JavaScript friend admitted that he had, at last, started to use libraries. His clients demanded more productivity for the money they were paying him. But he still had full-time development work, even if he was not writing the same code as before.
If you would have told me back in 1997 that most of the Java code I was writing would be replaced by libraries, and that by 2010, only a tiny fraction of deployed Java code in an enterprise application would be written by hand (the rest is in third-party jar files), perhaps I would have been nervous that there would be no future work in Java development, or programming at all.
What I didn’t know back then was that the world would keep demanding that software do more and more. If I were a Java developer today, would I want to go back to the late 1990s, and write by hand, all of the stuff I did then? Of course not! I don’t have time. There are so many valuable things that need to happen on top of those libraries.
What matters is business value. What matters is what your idea is. Can you make it happen? Think of how much work it once was to get a web page on the internet. Now it’s instant. Is that… a bad thing?
The impulse to “write it yourself” is still strong for programmers. I tried out an application generator for a hobby project I came up with, and couldn’t believe how impressive the initial scaffolding was that came from a simple prompt I gave it, which listed the purpose and primary libraries. I had planned on initial time to be spent doing a lot of boring code before writing the cool parts of my idea. But suddenly, AI did the boring stuff for me. And then I could actually do the cool parts. I haven’t had that experience before.
Or …have I?
Perhaps I have always been building on top of what I have forgotten was once done by hand, and writing “the cool parts” is actually why I became a programmer in the first place, and is also why people hire me. I don’t need to look far for the answer. My 11-year old son thinks it’s pretty awesome what he can make happen with current programming tools. He doesn’t miss - or even know - what I used to do before by hand.
Maybe I shouldn’t either.