I would like to respectfully push back on this assertion. LLMs are tools. Like all tools, they improve our work in some areas, at some cost. Tools are also not perfect. Tools don’t make decisions for you (or they shouldn’t).
A highly specialized tool running on decades of CIL code (please don’t ask me how I know CIL, it was traumatic enough to write a compiler from zero), will in many cases outsmart any human on the sheer volume on knowledge it has on the language and its surrounding ecosystem.
But for all that knowledge, it has no wisdom. That’s the part us humans have to deal with. The hardest one, if you ask me.
The usage of LLMs won’t make your code better. It won’t make it worse either. Your decisions do that. LLM code can be slop. It can also be highly efficient and maintainable. The factor that moves the needle from 1 direction to the other, often sits between the chair and the keyboard.
I also started as an AI skeptic. I still am. But I after giving it a shot, even I must admit it can be a useful tool, if used properly. Like all tools.
To illustrate this point, I genuinely recommend this article, describing an adventure some of us may be well too familiar with: https://www.makeuseof.com/linus-torvalds-just-showed-the-right-way-to-use-ai-for-coding-and-everyone-missed-it/
The quote I would like to highlight stands at the very end:
The answer you must always ask before accepting the outcome is simple: Do you possess information that the model cannot infer from the evidence it has? The reply may show up in the form of the data you already have, your intent, or just an understanding of what it does when it’s working right.
There will be times when the AI’s “impossible” actually means impossible. But there is still a point where you have to decide whether that conclusion is true. You shouldn’t outsource that to AI.
And, on the topic of AI and how to properly use it, I can also recommend this book, which not only changed how I view AI, but also taught me how to use it, much like Linus does:
As for the article itself, this quote got to me:
If anyone can point an LLM at slow code and it automatically finds a hot loop and uses a trick it found somewhere on the 'net to vectorize it, there is little point in hiring someone with a focus on that.
I have been in a position of being easily replaceable before. I had to adapt and change my whole career and professional direction.
For those of us of who enjoy sci-fy (@alvinkatojr perhaps?
) there can be an argument made that the ones who make it out, often share traits similar to the Zerg (SC2). For context, the Zerg is a species that is the embodiment of adaptability, resolve, and evolution. They are akin to the Tyranid (warhammer 40k).
Change is never easy. It costs resources and time. It can also be painful. But if those sci-fy novels and stories taught me anything, is that change, truly is the only constant in the universe.