Arguably, software engineering is more of a minor art than engineering. Sometimes, civil engineers state that if they build bridges as we write software … You got the point. Well, I have bad news. Now that generative AI – the pinnacle du jour of statistical AI – is getting integrated everywhere, we just made the lesser art of programming, the art of the occult 😉. Indeed, you will hear how using large language models to bootstrap code development, for example, cuts development time and cost by 30, 40, or even 60%. When I hear such claims, I playfully ask what guarantees the AI operator provides regarding code correctness. Of course, they always answer – and I don’t expect anything else – that validating the generated code is the users’ responsibility. And you would be a fool to trust code generated by any LLM-powered coding assistants.
OK, so we have an agreement here. It also means you lost some juicy productivity gains for extra tedious validation. Suddenly it is less compelling. Even scarier, sometimes a similar generative AI is tasked to write validation code for code it has statistically generated. It is a textbook producer-is-the-controller case. I suspect a reasonably skilled and experienced dev still outperforms coding assistants. However, employers may have a false sense of security and rely upon the services of less skilled and cheaper labor. That’s the bad news; the one-eyed is leading the blind.
But wait, there is hope! Indeed, and ironically, statistical AI can be redeemed by … symbolic AI. The same branch of AI, the abundance of data and compute power rendered obsolete, can be our redemption. That’s in principle since formal proof is a complicated science. Although progress has been made, we are still far from being able to formally prove any piece of code or complex system, such as an LLM-based one. Nonetheless, I predict symbolic AI, along with proof assistants, has a bright future, particularly as we reduce code development to its most trivial form. As I often say, someone will pay the price if it is easy for the developer.
There is a second irony I want to share with you today. With the democratization of natural language interfaces – a significant improvement over a UI or a CLI – anyone can interact with computing devices. The added value will not come from how well you master the shortcuts of your IDE but instead from how precisely you can express your questions and thoughts. So, in the future, to be an excellent software developer, you will need to be an English Major 😊.