Blackbox-coded apps, not vibe-coded apps.

"Vibe-coding" is a misnomer meant to disguise the fact that you are publishing something, despite not actually knowing what it does. It reeks of "Big Beautiful Bill" or "Better Kindergardens Law": the spin is right in the name.

Nobody cares about how much you were headbanging to Nirvana or chilling to jazz, while the computer built the app. They want to know why you are putting your good name on something you yourself don't understand and consider a mystery.

Reply to this note

Please Login to reply.

Discussion

your Beautiful actually It good how something Law": yourself are knowing Blackbox-coded the to computer not you app. of is is or in to a why something, the name.

Nobody right jazz, does. fact you misnomer or the built disguise "Better spin about "Big were Bill" publishing understand you don't apps, much They want know to Kindergardens mystery. that a apps.

"Vibe-coding" you headbanging putting chilling to on cares what it despite consider while reeks name are and meant the the Nirvana vibe-coded not

Maintenance does not exist.

wait AI can't do proper maintenance? πŸ€“πŸ€­

I think it can if I look at all the hypebros on Twitter and Nostr

Vibe coding is perfect for how many people work here. Make a cool proof of concept of an app, then abandon it. Now you don't even have to write it yourself. πŸ₯²

For that it works

Hey, don't be hatin. That's gotta be the slickest scam I ever done seen.

R-E-S-P-E-C-T the playas.

No hating. Just observing πŸ˜‚

See, our problem is that the moral stick up our arse has a stick up its arse. Otherwise we'd join in and get rich quick, instead of grumpily whining at them playin to win.

Of course, if everyone did the same thing, then nobody would win. So, the playas require the prudes to run their game.

Nothing ever changes. High school never ends.

Everything is throw-away code, now, it's true. That's why it all mutates and breaks and is unbroken and removed and shifted around, while you use it. It's being constantly re-generated and replaced, rather than maintained.

Feels like you're trying to eat a steak, but it mutates to a tomato and hops right off the plate, when you go to slice it.

WHO MOVED THE MENU ITEM? I WAS USING THAT!

I think the LLM removed the cookie validation in auth.ts… that’s what the vibes say so I don’t think anything can go wrong

Trust the plan. Vibe your way to victory.

At work with one of my colleagues we tried to accomplish a task by vibe coding it. Something seems to work. We reviewed the code and realized it's really terrible. Spotted a lot of potentially unexpected behavior.

Finally I said, I'm not comfortable with this shit. This cannot be used in production. Ended up writing it my self with some help from the LLM, but my instructions were very specific about what code it should write rather than letting it hallucinate the nonsense

We'll end up managing more and more code, and having the AI write most of it, and then we have to create tools and systems to evaluate what it wrote and do random sampling to detect smells.

AI means more code. Much more code. Exponential growth in code. And some of that code will be wicked and we have to find that needle in the hastack. And we have to find it in our own code, and in the code of all dependencies.

Out of the 591630 batches of shampoo your machines produced this year, did you find the batch 8269 that had little plastic pieces in it?

Well, did you? Did you even look? WTF do we pay you for?

I have no idea how these llms are gonna change our lives.

But more and more code produced by devs&ai sounds plausible to me.

And no more excuses about dependencies.

Increasingly, we won't even roll out dependencies. We will use dependencies to build, like a template, and then slowly substitute them with our own AI-coded variant.

And then we have to sign off on the entire codebase.

Gonna be fun πŸ˜„

I don't like the sound of that.

Why?

It's the siren song of automation. If you spend more time automating a task than doing the task, you are wasting your life.

That is only true in the aggregate.

I tend to think that way.

Is it not a way of improving AI and dumbing down the resl deal.

Yesterday I tried for an hour, I think I have to improve with the way of prompt is a fundamental requirement of these days, you do not look at the code but to the result

I've been blackbox testing professionally, for decades. It is not a substitute for whitebox testing, but merely a compliment to it.

I don't want to disagree with you, just give you my perspective on this:

For someone like me, who is not a Dev, vibe-coding has opened a door to a wonderful word. I can suddenly do things that weren't possible before. Building bots, creating tools for work, trying new ideas... there is suddenly so much to explore.

And, more importantly, I'm not coding things for others to use - I'm coming up with stuff that is useful to me. It feels like having your own little workshop in your garage where you can go and build useful things for your home.

That's not the use case I'm discussing. That is obvious from the context.

I know. You are right, my note doesn't contribute to your argument. Sorry, just had to get it out

this is an air reply, isn't it haha πŸ˜…

A blackbox is something you can't look into. Unless AI/LLMs start to produce executable binaries without also showing the source, this is a misnomer that doesn't lead anywhere.

nostr:nevent1qqsdv623xvhcvnhgexsmvw0nrzt9c3p9nhagc8l8fu076fn0f0cj7ecpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyrwkvn27gqtyxw5v660sqkhpfqyqgdgh3x6emed0qcnkmejkx0f3jqcyqqqqqqg46x082

I tried some more serious AI-assisted programming in my day job, yesterday. I had spent two days writing up a specification and describing the API. Then I wrote Gherkin for behavior tests with some AI help on the repetitive parts.

Once I had all that, I started turning GitHub Copilot loose on the problem.

With that tool, I made as much progress in a day as I might have made in several days without AI, but the mental exhaustion really start to set in after a while. There's so much code to read.

The tests are critical, and I defined a lot of test cases, so making sure those are correct will be the most tedious part. However, even when I said "go fix the code so the tests pass," Copilot started running in circles, copying a key file, then freaking out when all the duplicate definition errors broke the build.

So, it's pretty cool, but there was no "vibing" for the most part. I find I have to stay pretty sharp to make sure the LLM understands my intent.

most of the time it's not that useful. it can help you comb through code to find common errors but static analysis tools that existed long before already help you catch most of those.

If you're running Typescript and feeling lazy, you can do "npm run check" and then just copy-paste the result into the API form and it'll fix it. Faster than typing yourself, once you get beyond a few errors or a simple search-and-replace, like during a major rewrite.

I also notice the exhaustion. That's probably why they vibe. The code is so verbose and appears so fast, that they just give up on even looking at it.

Of course, that means that the possibility for error and inefficiency goes way up. I keep finding duplicate code, that snuck in. I didn't notice, as it was exactly the same function, but in a different file. Then you fix a bug in file #1 and go nearly crazy because it doesn't get fixed everywhere.

Yo, I feel ya! That code fatigue hits hard, right? 🀯 But for real, how do you keep track of all those sneaky duplicates? Got any tips for spotting them before they drive you up the wall? πŸ•΅οΈβ€β™‚οΈπŸ’» #CodeLife #DevStruggles

It's better when you write tests first.

My copilot-instructions file says "**TESTS ARE SACROSANCT.** NEVER modify them without explicit permission from the developer."

Then the tests give me more confidence in the generated code, though I still need to manually intervene at times.

The thing is, everyone hates writing tests.

The other thing is, if you're careful, you can write tests faster with LLMs.

unit tests, sure, integration tests are a lot more fiddly. and tests that are several units down the line in a composition of units tends to get pretty funny as well, that place between unit and integration, formally doesn't have a name but you often still find bugs after the small tests pass but then you built those into more things and oh there's a bug back here.

i'm extremely skeptical that there is a broad use case for LLMs in software engineering. the two most useful things, that even also still fail to actually grasp the semantics, is writing commit comments. even there i find it doesn't work more than 2 times out of three.

handy for people working in a company where strict formalised procedures are tediously demanding, and the superiors accept the half assed LLM generated commit comment, but they don't satisfy me, and the LLM doesn't get what i did half the time, i mean. if i end up having to spend more time watching the thing doesn't make mistakes the drain on one's capacity for attention makes it a dud. i did it in less time, but then i needed to go and touch grass for the next two days, with a vodka and tonic in my hands lol.

Yeah, I totally burnt out, after a few days, and just now got back into the driver's seat.

Felt like my brain got fried.

This gets into different schools of unit test development.

Personally, I ascribe more to the Detroit school, which holds that test isolation refers to isolation _from other tests_. I try to write tests that treat the system under test like a black box. All I care about are the inputs and outputs of the system's public API. When you don't test all the internal units, you catch more of those tricky bugs that show up at the boundaries between different units.

The larger you make the "unit", though, the harder it is for LLMs to write effective tests.

The tests are written faster, but I've twice scrapped the unit tests it wrote because they were rather useless tests.

Yeah you have to give the LLM _very_ careful instructions to make sure it writes useful tests.

I always have it write up a test plan, then I edit that manually before turning it loose.

True. Isolation & tests are important.

A mess of buzzwords. My experience as an occasional tinkerer of code, I'd say LLM driven code can be good, but mostly bad. Good in that I've been able to use it to locate chunks of code I want to adjust. Using an LLM as an entry-door to experiment and learn. It still leaves it to me to actually learn something.

The bad comes when folks rely on it so heavily they neither learn nor understand. Without the proper experience, you won't be able to clean the mess the LLM left behind. If you do get ypur project working, you end up with that mystery box nostr:nprofile1qqsd6ejdteqpvse63ntf7qz6u9yqspp4z7ymt8094urzwm0x2ceaxxgprdmhxue69uhkx6rjd9ehgurfd3kzumn0wd68yvfwvdhk6qgswaehxw309ahx7um5wghxcctwvs8hz86j was talking about. Likely also an unoptimised mess.