When I last visited my parents, my mom and dad asked me whether I was worried about ChatGPT or other AI systems taking away programmers’ jobs and whether I was worried about my own future. My answer to them—and this might be a naïve take—is that I’m not very worried and that I think that programmers are going to be around for a while yet.
The reason I think this is because the current breed of AIs that make headlines are generative AIs, i.e., AIs that are able to produce text, images, songs, videos, etc. Importantly, those AIs do not understand what they output. Generative AIs are really good at stringing together words and symbols in an order that makes them look intelligent, but it’s just a very impressive illusion; they don’t have the capacity to do real analysis.
Programmers, contrary to the common perception, don’t just spend all day writing code at a keyboard without thought. The important part of our job is the time we spend understanding a problem. We use our ability to recognize patterns, to notice oddities, to question the status quo, to wonder “what if” to augment our understanding of a problem and of its solution space. This ability to take fragments of information—code, data, timings, test programs, colleagues, documentation, dashboards, etc.—, to establish links between them, and to derive new knowledge, that to me is real intelligence, and as far as I know, it’s still only a human thing.
The recent xz backdoor provides a good example of this. Andres Freund noticed that his OpenSSH daemon was taking more CPU than usual and that SSH connections were taking longer than usual. His initial observation and subsequent digging unveiled an extremely sophisticated attack that could’ve created a huge cybersecurity nightmare. GitHub CoPilot might be good at auto-completing the stanza for opening a file in Java, but unless it got an impressive upgrade in recent days, it cannot notice a slow SSH connection, use debugging tools to find the the source of the CPU usage, notice that the slowdown comes from an suspicious unnamed symbol in a compression library, decipher the complex dance for creating the backdoor, and reporting its findings to the community.
Obviously, the day-to-day of most programmers doesn’t involve finding hidden backdoors, nevertheless, this ability to understand a problem, to investigate, to derive insights is primordial for doing our jobs. Generative AIs are not going to replace programmers; they might become a useful addition to our toolbox, but when the dust has settled, their usage will certainly be more modest than the current hype predicts.