With the advancements of LLMs, there are more and more vibe-coded or AI-assisted programs and apps coming out. On occasions, I browse “Show HN” of Hacker News, where developers and non-developers alike share something they created online. There seems to be a distinct trend where some people would not even try the software if the landing page looks even remotely AI-generated, regardless of whether the actual underlying software was good or not.
Although I may not be to that extreme, I also found myself more skeptical of the quality of the app if it seems AI-generated. Of course, I’m aware of many AI-generated “slops” that may have eroded my trust on AI-generated code in the earlier days of LLMs. But this doesn’t explain why I have a slight aversion to using internal research tools that were mostly AI-generated. In these cases, I trust my fellow co-workers to have reviewed to ensure the code is high quality and wouldn’t break under normal circumstances. For some reason, even if something works well, we have more aversion just simply knowing that something was created with AI assistance.
It’s actually quite odd when we think about it - despite the hallucinations, LLMs have improved considerably in recent period that it likely removed unforeseeable bugs compared to if we were to have written on our own. Still, there’s hesitation to use a 10,000-line code even if all those were improvements.
I’m currently attributing this to the possible “lack of thoughtfulness” in AI-generated code. I think somewhere deep inside we may wish the developer to have put in thought, to be the expert, to be able to debug complex problems if we encounter any errors while using their code (even if AI can do this on their behalf). When things do break, as the user, I may be told to use AI to fix the AI-generated code, since the developer themselves may not understand the codebase thoroughly.
I think the engineer in me wants to and loves to do deep dives and understand how the tools that I use work under the hood. Even long before this LLM-era of AI, I was already quite uncomfortable, say, just using random off-the-shelf scikit-learn classsifier without really understanding how it works. This does explain why I feel pretty uncomfortable (perhaps unable?) to build on top of AI-generated code before understanding.
I know many others have written about topics like “understanding is the bottleneck” and “cognitive surrender”. I hope to see more developments in how to use AI to augment human intelligence, rather than to replace human intelligence. If understanding is the bottleneck, then rather than code-focused harnesses, we should try to develop harnesses to improve understanding.