Back to all posts

What Vibe Coding Could've Been

Published

Disclaimer: This post is not about the merits or drawbacks of vibe coding or AI, but lamenting a theory of programming for fun.

When I first saw the term “vibe coding” last year, before learning what it actually was, I had some ideas. I thought it was programming just for fun.

It didn’t seem like that far of a stretch. After all, if we look up the definition of “vibe”:

Search
define vibe
vibe noun 1. a person's emotional state or the atmosphere of a place as communicated to and felt by others Example: we've been picking up some bad vibes on that guy
ambience aura climate air mood feel feeling
verb 1. enjoy, dance to, or feel inspired by popular music Example: he shared a video of himself vibing to a song 2. transmit or give out (a feeling or atmosphere) Example: he vibed pure hate in my direction
(Reconstructed from Startpage's results)

Surely “Vibe Coding” is about feeling? I was imagining a movement of people programming for the sake of programming, solving problems and puzzles interesting to them, or simply making what they wanted without bureaucracy, the user stories, the stakeholders. Sharing creations not because they had to, but because they wanted to share their love for the craft.

I wanted to “vibe code” by brewing my favourite coffee, listening to music, and getting lost making a new codebase, spending time on what I wanted rather than what would be an efficient use of my time. I wanted to recreate Startpage’s little definition box on my blog, not because it was required or that I thought it would have good ROI, but because I thought it would be fun. And it was.

I wrote my Quotes Generator not because there was a business use-case, but because I wanted to, and I made it for no one in particular beyond myself, with no AI.

So, imagine my disappointment upon learning “vibe coding” was not something for people who love the art of programming to engage in, but rather a complete surrender of control to an AI system. There was no “coding” or “vibes” in vibe coding. “Vibe Coding” is its own antonym.

It’s like a manager calling themselves a developer after delegating some problem to the programmers. I don’t become a baker simply by ordering a cake from a pastry shop. Why should asking ChatGPT to do something make the user a coder?

Some of the best tools were made because the author wanted to. Eric Raymond wrote in his essay The Cathedral and the Bazaar “Every good work of software starts by scratching a developer’s personal itch.” This was also cited in the first Halloween Document by Microsoft to explain the growth of open source software.

xkcd author Randall Munroe also made a comic which I interpret to be about learning through programming for fun:

Then, what would good terms be for these concepts? I’d love for “vibe coding” to be repurposed to mean literally programming on vibes, though association with AI has tainted the word “vibe” (though it is funny to see it to mean any surrender of control to AI, like ‘vibe lawyer’). I’ve also heard AI-driven programming called “prompt-and-pray,” which seems fitting. Obviously I have no authority to institute language changes, but it is nice to think about.

I’d like to encourage you and others to explore programming using vibes. I’ve learned most from just building programs for myself, and I believe it is the most fun way to learn. You probably won’t have any benefit if AI does it all.

When you have some time, please feel free to spend an hour getting that button animation juuuust right. Add that little feature that no one would notice, but makes you happy. When you are programming for the joy of it, don’t worry about edgecases and user experience unless you want to. That’s what I want Vibe Coding to mean.