Vibe-Coding, or How Your App Goes from 'Wow' to 'Oops'
- Published on
- Authors
- Author
- Toby Luxembourg
The other day, my friend Bernie said, “If you’re coding manually, stop and do this. You don’t even need to know how to code.”
“That’s so rad,” I replied, eyeing his fantastically-looking app on his phone.
“Yeah, AI just does it all for you,” Bernie said.
Suddenly, someone sprang out of nowhere: “Hold on, I need to tell you something.”
Bernie jumped, “What the hell? Who are you?”
“I’m the software bullshit checker,” the stranger said.
“Whoa, what’s that?” I asked in my classically stoner tone.
“You’re like a genie for techies?” Bernie asked.
“Almost. I try to help people steer away from bad technological choices,” the man explained.
Bernie squirmed and looked at me. “Are you saying vibe coding is a bad tech choice?”
“Yeah, it saves so much time,” I said, supporting Bernie.
The wise man replied, “It’s not necessarily a bad choice, but it can be.”
Bernie shot back, “I don’t care. I can finally build the app I’ve always wanted to build.”
“Exactly, it’s great for that,” the man said pointedly.
“So what’s your beef with it?” Bernie retorted.
“If your only intent is to make a quick prototype to show your investors, then go for it. But if you want to use it for production…”
I interrupted, “For what?”
He continued, “…to use with real users. Then you better have no bugs, or your AI workflow better be able to solve them all.”
“Why?” Bernie asked, surprised.
“Because (a) the codebase will most likely be unmaintainable, and (b) if you don’t know how to code, you won’t be fixing anything when it breaks.”
Bernie smiled, “I’ve got a real software engineer buddy who could help me if anything happens, he works at Amazon”. His smuggness transpired.
The man seemed unfazed. “That is, if your AI agents and your automatic workflow stick to good engineering principles, and if it doesn’t create spaghetti code that happens to be runnable.”
“Why are you bringing Italian food into this debate?” I asked, perplexed. I definitely shouldn’t have smoked that joint before this conversation as it was a lot for me.
Bernie intervened, “Spaghetti can be messy, especially with gravy and meatballs. You can’t see which noodle is which.”, at which point, I wasn’t sure whether I was the only one high in this conversation.
“Exactly,” said the man. “It’s unmaintainable code because it can take an extraordinary amount of time and energy to understand.”
“But it could still be fixed by a human,” I shot back, proud of my point.
“If they have the patience to deal with some of the worst code they’ve ever seen,” replied the man, calmer than a monk.
“Why can’t AI fix it?” Bernie asked.
“Unfortunately, many current AI models operate within a limited context window, which restricts the amount of information they can process at any given time. While they excel at certain tasks, they often falter when it comes to dissecting and resolving intricate problems. Moreover, if a bug arises from the interplay of various code segments, the AI is prone to errors,” he explained. “Software engineering is far more complex than most non-experts realize.”
“So we shouldn’t vibe code?” I asked, demoralized. “I just want to create my app. What do I do?”
“Vibe code,” the man smirked back.
“What?” we both yelled.
“If that’s the best tool you can use for your context and problem, and considering the cost of hiring a professional developer can be high, then go for it. One alternative would be to use low-code or no-code tools, which can also be effective but may require some effort to learn and implement.”
“Alright, well, here’s my app,” Bernie said, “looks pretty good, right?”
The man acted surprised, “Indeed. That looks…incredible.”
He swiped through the menu items and clicked on a card. The screen blanked out.
“Oh, what the hell?” Bernie exclaimed.
“Seems it crashed,” I said, beaten.
“Good luck,” yelled the man, now at a distance.
I turned around suddenly, “Where did he go?”
“Oh, fuck me,” said Bernie.