2025-05-10
Back | Home |
Read an blog post from Ashley Willis this morning on the subject of "Vibe Coding". This is a term I've heard before but hadn't given much thought to beyond trying to suppress the involuntary urge to vomit. To me, the term elicits thoughts of the young, Silicon Valley know-it-all software developer who only knows how to prompt an LLM and takes the code produced at face value. Maybe runs a few tests locally to ensure it actually compiles/runs, maybe and YOLO's it in to production without further thought or understanding as to what it is they just did. It works (for now) and that's all that matters.
Ashley presents the term in a more nuanced light that make me realize that, for a while now, I've been "vibe coding" (I still really don't want to use that term). I regularly use LLMs, mostly Gemini, to hash out new ideas and produce some scaffolding to start off with. From there, I will make tweaks and write my own methods to extend functionality, but the core starting point almost always comes from an LLM these days. Additionally small tasks, such as a quick automation to use locally where I couldn't be bothered to spend the time writing it from scratch, are more and more frequently something I lean on LLMs to create for me. I review them and use almost verbatim in 95% of cases. To me, this is not vibe coding. This is just an evolution of software development. Just like IDEs improved the rate at which developers could write software through the use of simple autocomplete, function lookups and other "dumb" user aides, LLMs provide near instantaneous access to the entire Internet's base of knowledge on a given language or library with an ability to do fairly good reasoning about a concisely worded problem statement. It's not perfect but none of the aides we've had before now were either.
Bad things are not inherent to the use of LLMs in a software development workflow. Bad things happens when we fool ourselves in to thinking that LLMs can reason about things as well as humans can and we fail to recognize the line between reasoning and recall. These systems are very good at the latter and only somewhat ok at the former. Keep this in mind and LLMs can be a real game changer when it comes to software development productivity.