On "Vibe Coding"

9 hours ago 1

The hype about the potentials (it’s always future potential, never real current use) of AI has discarded its last cycle (“reasoning models”/”deep research”, both terms being factually untrue and deeply deceiving at best) and moved to a new double whammy of “agentic AI” and “Vibe Coding”.

Now “agentic AI” basically just means that some LLM starts calling random functions somewhere on the net who needs security in their architecture, right? But I want to look at the second part, now called “Vibe Coding”.

What prompted me writing this were a few distinct things. I gave a keynote yesterday at a corporate event where an internal tech evangelist did a whole thing on vibe coding (actually in a somewhat measured way, but it shows how strong the meme already is in the LinkedIn crowd) and a German “tech” influencer wrote a big thing in a big German magazine (not gonna link it, it’s just an ad for his keynote-business for LinkedIn people). But also serious people with some experience are starting to use the term.

“Vibe coding” refers to using an “AI” code assistant to write program code for you: Instead of thinking about software architecture or how to express your solution you basically just give a problem description and maybe fragments of a potential solution to an AI to generate the code for you. Especially if you are not familiar with the programming language you want to or need to use that obviously creates runnable code a lot faster than learning the whole new platform.

Narrative power

“Vibe coding” has a lot of narrative power. You can easily use it to put forth an argument about the “democratization of technology and software creation”, about “empowering individuals, groups and organizations to solve their own problems”, about “giving people access to the means of digital creation” etc. At first glance those narratives feel great, who doesn’t like “democratization”, “empowerment” and handing the means of production to the people? (That last one might not be everyone’s idea of a good time but it’s mine so let’s keep it here.)

But I think those narratives are massively underbaked at best and we don’t live in the best possible world so maybe we should call them short-sighted and deceiving if not just plain false. As with many digital narratives they don’t fully stand up to scrutiny but show a deep misunderstanding of how software is made, the potential externalities (and internalities) software brings and a disdain for experience and embodied knowledge.

Software

Software is a bit of a weird beast. Many people have a very wrong understanding what it is and how it is created. This is probably true for everything: We don’t know shit outside of our specific bubbles and that’s not bad in general because division of labor is – in my opinion – good. I like having specialists and experts on things tackle hard problems. But software has been shoved as an abstraction layer into so many of our systems, our social connections, our work, the way we interact with the world etc. Software is kinda everywhere and is a lot of the time the goto solution for any problem: Your office has problems with processes? Maybe buy another software tool to not write proper tickets and documentation in.

Software is kind of the meta solution to anything. Not a specific tool but the way to think about tools and solutions. If there is a solution, it’s probably in software.

But software is hard to create. Good software is even harder. But that’s not because you need magic wizards to write the most arcane code (most of the time) but because software is not what most people think it is: Software is not (just) the lines of programming code.

Good software flows from good requirements analysis, from understanding the real problem that is to be solved and it’s domain and organizational embedding, from understanding the needs, abilities and situation of the people using the software, it flows from thinking about good architecture that describes the structure of the whole construct often even before a line of code has been typed. It’s a bit of an exaggeration but I’m still gonna say it: The programming code is kind of an afterthought a lot of the time. The whole gestalt of the software has been described (or at least conceptualized) way way before.

But that process is very hard and messy and therefore costly. Taking the time to actually understand domain, problem and people is a lot of effort especially when knowing that when building special software for a context you will run into many social problems that you need to navigate (like: Putting function A into department B would make the most sense but department C is never gonna give that function up because of internal politics and power struggles). Many if not most problems in software development are actually social problems. Good software therefore flows from empathy and listening.

Just vibing output

As it is usual with promises of “AI” this process is claimed to go away now. No more complex thinking about where your software is gonna run and what it will do for whom. Just scream some demands into the void and hope that some god or daemon will answer with the right output. If not? Rinse and repeat.

Just as with creative works like images or music, “vibe coding” misunderstands the value of “doing the work”. It’s weird to have to say it but thinking and understanding and improving ideas happens while doing the work, happens while submerging yourself into a thing, a process, an idea. You don’t know what you want or need before you actually start the work, the actual truth appears while trying and carving and building and fucking up.

But we don’t need that anymore. We vibe results. That is the “AI” promise: Results without effort. Pure output without significant input.

Now I understand the – on first sight – measured argument: “We don’t do vibe coding for real software, we just use it for quick one-offs and prototypes. Software where quality etc. do not matter much.” That sounds like a reasonable approach right? Low stakes environment, what could be the harm? Well, reality might like a word.

Nothing sticks around as long as a quick prototype. Sure management will say that you will get the time to do it “properly” later but when they see something that looks functional those promises go out of the window. “It’s almost done, just polish this and get it out”. And even for individual developers throwing away code is hard, it can feel like a waste of time. Redoing shit can be very boring, even if you know you should. Things usually do not get redone properly, you just start propping up the prototype with byzantine scaffolding. (Maybe it happens somewhere. I have never seen that in my life at any of the organizations I have worked at, potentially open source projects might be better about it, but I have no studies/statistics showing that.)

Democratizing software development

Look, we’ve heard the same argument so many times that I should have a pre-written text snippet for this: AI is gonna democratize art and music and everything else. Now software. The story is the same.

Are those things locked behind licensing requirements like certain chemical or drugs? Did someone stop you from drawing everything you wanted becoming an expert? No. Well yes, capitalism in its unbound drive to take all your life and turn it into someone else’s profit. Sure. But that’s not solved by giving you a generator for anything.

There can be a lot of joy in learning a skill, learning to code, to draw, to play an instrument, learn a new programming language. It’s the joy you feel while growing as a person. It’s the feeling of you becoming something more – with regards to art and creative works often something you strive to be, something you need to become. Giving more people access to that sounds great. But that’s not what AI does.

AI takes away the space of your growth and just gives you something shaped kinda like something you might be able to create after having grown. It’s not only taking away the space in which you develop (which happens through the work and deep engagement with a thing) it’s also showing you results you clearly could not create yourself demotivating you to try. It’s taking away space to grow and telling you that you shouldn’t bother. It’s infantilizing and degrading.

That is not democracy. Democratization has been coopted by tech to just mean “commodified”. Everyone can buy the same AI model (if they have money). But that is the opposite of democracy: We are pushing people into more dependencies on big tech and centralized players while taking away spaces for them to build a different path. We are thereby normalizing everything to a white, western, colonial male perspective because that’s what those models are trained on. We are taking away marginalized groups’ opportunities of developing their own language and expression. That’s not democracy, it looks very fascy to be honest.

Actual democratization would mean giving people time and money to spend on what they want to do. You want to democratize art or music or coding? Give every person 2 or 3 months a year fully paid time off to do as they please and see what happens.

Disdain

If GenAI tools share one thing it probably is the disdain for excellence and skill. For people having put in the work to learn how to draw, play an instrument, write music, express themselves in interesting ways. GenAI supporters seem to have this feeling of entitlement (which is where it connects to the “Democratization” narrative): “Some people know how to do a thing I cannot do but that seems to grant social or financial capital or reputation and that is unfair.”

It is not really though. Other people’s excellence which they have acquired through dedication and work is not yours to have. Unless you are willing to put in the work of course. Be my guest, learn to draw, it’s fun! (Again: just give people paid time to do that.)

GenAI is not about pushing down labor power and wages (even though for businesses that is the only real, actual use), it is also about devaluing expertise, knowledge, experience. About declaring people’s lives worth- and meaningless. “Your years of learning to play the piano were DUMB and a WASTE OF TIME we can just generate stuff.” This is another version of the “everyone should learn to code/just study STEM fields” crack that most of tech – and sadly a lot of governments – have gotten hooked on. It just now also applies to STEM people. That’s what you get for not standing in solidarity with your fellow non-STEM humans. The narrative you happily embraced when it applied to other people now bites you in the ass. Funny how that always happens when you align with power/capital against some “other”. I wonder if there is a poem about that.

Empowerment

But does vibe coding give organizations and individuals power? Power to build what they need regardless of their wealth?

Sure, if “build what you need” means “something that might look like a thing that might do what you need but there are no guarantees”.

If I have a rich person who can hire professionals to write their code and a poor person that I give access to a code generator those two people get wildly different results: One person actually gets a maintainable piece of software based on their requirements and all the guarantees that one wants when running something relevant. The other person gets something that they have no idea what it does and where/how it might fail. This is not empowerment, this is cynicism. It’s the same logic of giving people who have no access to psychotherapy a chatbot. That’s not the same, it only looks like it from space.

Empowerment has something to do with giving people objects of a certain quality, objects that are not opaque to understanding and reasoning. Objects one can make one’s own to a certain degree. There needs to be at least a reasonable path towards that.

What skills does a community gain from going the vibe coding route? Nobody learns how software is build or how important architecture and requirements are. They end up with a hodgepodge of code that is impossible to build upon because it was never build with intent, never build by someone who could explain that intent and how to proceed.

Even if the vibe coded solution does work now, it is a cul de sac. You’re stuck now with a thing that might crap out on you tomorrow and you don’t even have someone to call.

Especially when we claim this empowers marginalized or poorer groups this gets worse: These folks already start at a disadvantage, now we add shitty tools and services on top that they are responsible for themselves without any training or skill gain. Perfect. If you are a psychopath who hates marginalized people.

And there is a lot of epistemic injustice here: We are forcing certain groups into a situation where they basically have no chance to understand the systems affecting them even if they “made them themselves”. Again locking out people from opportunities to grow as individuals or as people contributing to a community.

Externalities

I talked a lot about internalities. Epistemic injustice and removal of opportunities for personal development, skill acquisition and the ability to find one’s own voice. All important things. But the rest of the world is affected as well.

We are sharing this world and what is true for the planet and the climate is true for our digital world: You building and releasing untested, bug-ridden code to the world is a problem for all of us. You get a bad product and your users also do. But your machines might turn into spambots, your software might accidentally negatively affect other people’s systems. In this case you are making the Internet worse for everyone. Because you don’t know better.

Now that if of no concern to a Y-Combinator funded startup: Startups mostly don’t care about the product or their users (beyond their numbers), startups are build to somehow scale to something big and then get bought by someone with deep pockets. “Entrepreneurs” don’t want to run a company, they want an exit, a paycheck and then do the lottery again.

We will soon see the first services who have been vibe coded to a large degree having thousands of customers whose data will be taken, who will be directly harmed because some asshat with an unfinished business degree got Mark Andreessen to buy his lottery tickets for him.

I wrote about how “AI” systems are teaching people to expect less of products: AI always has the “all of this might be wrong and shit, check it (even though we know you won’t)”. This also is an externality. We are teaching people that they are not worth to have decent, well-made things. This might sound not that big but I find it so disrespectful and disgraceful. It’s a manifestation of the logic of con-men: Everyone cheats, nobody has any pride in what they do, just con everyone and expect them to do the same unless they are suckers. This is deeply inhumane. And deeply sad.

The output is not the point but vibe coding is only output

The output of development work is important. If I want to solve a problem, just dicking around not finding solutions sucks. But vibe coding does not give you long term strategies and knowledge to apply again. It leaves you helpless with some output nobody wants to put their name to (there’s always an asterisk).

And that is very inhumane and disrespectful. Or as Miyazaki said: “An insult to life itself”.

Liked it? Take a second to support tante on Patreon!

Become a patron at Patreon!

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Read Entire Article