Troy Hunt has been a pillar in the cybersecurity community with his Have I Been Pwned project for many, many years, even walked back a purchase of it because he felt they would compromise the principles of the project. But now he has just gone all-in on AI. On a previous Weeky Update he published a “Robophobia Equality Policy” after receiving pushback to his openclaw usage. Since then he has posted more of his usage of AI, and in the latest he suggest that “people are getting into the program” because he seems to be receiving less pushback and because of Linus’ affirmations


Sure in principle you could check all the output the AI shits out to see if it’s right and then spend time correcting it either by hand or by prompting some more. And in doing so, one might be able to do more in a given amount of time, or less. Recent studies have shown it might have felt like programmers were able to do more, but in reality did less in the same time. But that might vary from person to person and the given tasks.
However that skips over other issues:
Reading and understanding code is so much harder than writing code. This has been known for decades. So instead of doing the easier task of writing the code yourself, you are left with reviewing and understanding the generated code. This add a lot of extra cognitive load, which can lead to fatigue quickly. This fatigue feeds into another issue, where it’s so much easier to just hit approve on everything and skip out on the really in depth stuff. People tend to slack and just glance at the code, which is a huge trap, because LLMs are very good at writing code that looks right, regardless of if it is right.
Then there’s the issue where writing the code is a small part of the task usually. There’s also understanding the task and figuring out edge cases. It’s hard to do that all up-front and at least for me, while writing the code I think of edge cases or get a deeper understanding of the task. By flying through the writing part, the deeper understanding gets skipped as well.
And the issue of bias, where it’s often a lot better to think about an open question instead of a multiple choice question. With vibe coding it’s very easy to be lead down a path by the LLM, where it suggests a path which seems logical, but might actually be wrong. Then breaking out of that path can be hard. This might be an actual wrong path, or it might just stifle creativity. A common complaint is all AI generated stuff “feels” very samey, which makes sense because LLMs are designed to see common patterns in a lot of the data. The more common a pattern is, the more likely the LLM is to suggest it.
Another very common issue with LLMs is they tend to touch stuff they shouldn’t. This is because of how they work is by processing everything as a stream of text. So let’s say I want to expand a template with a new part, it has no choice but to read the entire template and then output the entire template as well. It’s supposed to just add the new part, but often it makes other changes as well. And this happens on a multiple-file base as well.
One big issue I’ve noticed is the regression of skills for people who use AI for their work (coding or other). It’s so tempting to just press the big green EASY button on just about any task. But then when the AI isn’t able to do the task right, people are stumped and are no longer able to do the things they used to be able to do for decades before. Especially with coding, it isn’t like riding a bicycle where once you know how, you are able to do it forever. It’s a lot more like a muscle you need to keep excising and if you don’t it’s going to lose power and capabilities.
And we’re not even touching other issues with LLMs in general, like concentration of power, vendor lock-in, obfuscated pricing, resource usage, (un)fair use of source data, hallucinations, manipulation, destruction of the internet etc.
So for me the people who say: “It’s just a new tool, you wouldn’t go back to hand punching paper tape right!??!!?” are being very disingenuous about the actual issues. Sure it’s just a new tool, but one with real consequences to using it. As with every tool we need to weigh the pros and cons and just because it’s available, doesn’t mean we have to automatically use it. We still see people enjoying a command line or text-based interface, even though most people use graphical interfaces. And I personally code without any form of autocomplete, because I find it annoying and distracting. Just because tools exist, doesn’t mean we should all use them and it certainly doesn’t mean we should be blind to the downsides attached to certain tools.