Yes. Definitely. I never did try and error with code snippets from the internet until something sort of worked.
I never hacked things together like this till the sun rose and had no idea 2 weeks later who wrote that hacky mess and why like this. Or well, years later.
And as the code piled up and side problems took over, I certainly did not reimplemented the same functions again and again, because I forgot I did the same already 3 years ago. And that module (and that part and this), that works great as long as you don't touch anything? Yeah, I certainly know how that works in detail. All in control. Gotta fight to keep AI away from my code to stay in control!
Or did you write your comment with an intentional self-demeaning note, and not a sarcastic tone?
And no, not all my code is written at 5 am when I am close of passing out. But I say those who never experienced that flow to also do hacky things to get something done and if it takes till the morning, maybe did not capture the full spirit of a hacker site?
I believe the point being discussed is the scale of "badness" that vibe-coding introduces.
Yes, my point was exactly about the middle ground. (And the double implemented functions were of a rather small kind, where rewriting them was faster than looking for the old ones. And it was hyperbole of course, I don't routinely do the same again and again for no reason. I remember maybe 2 or 3 instances of that happening)
I wrote bad code and good code in my life, depending on the project and depending on myself.
And where I wrote bad code in the past, AI is actually great with helping that. Finding duplicates, documentation out of order, etc.
"I believe the point being discussed is the scale of "badness" that vibe-coding introduces."
The point I was discussing is that code is not automatically understood, or good, just because a human wrote it.
So all in all, sure, Vibe coding enables a new universe of bad code (that pretends to look good). But if done right, it can also raise the bar. It is a powerful tool and up to us on how we use it.
Even the best code I've ever written rots, not because it changes but because I get better. Now... I know thinking out of the box is hard... but one can get better a lot of different ways, and call me an optimist, but I'm betting folks can get better at producing tool-assisted code, too. Assuming how we do it now is how it will be forever is silly.
We're in the middle of figuring out the next level of mediated engineering. You-know-what or get off the pot, but stop pretending being a dinosaur is still in vogue. It's gauche, and trust me, we've seen it all before...
... back in my day we didn't have that fancy IDE autocomplete; we memorized every function in a library. IDEs?! ... Back in my day we didn't even have debuggers; we just knew how the code worked. Pish posh, back in my day the compiler didn't even produce error messages that made sense. Compilers? The faux luxury of it all! Back in my day, if you actually cared about your code, you wrote the assembly by hand.
I didn't necessarily know everything about my code at all times before.
And that justifies my gleeful embrace of not knowing anything about my code now.
I might be open to some agent-like behavior, access to a git repo and ticket system. Probably not my whole OS, any more than I'd give to a drunk schitzo I met on the Internet.
I see the appeal to what people have going on. But I've been using LLMs for going on a year, I was slow to adopt and wait-and-see because I didn't need it at the time (deep dive, learning python Ecosystem). I'm glad I stayed the course. I can get great results prompting these things and edit the results with care.
No more burnout than a subordinate working for hire in this mode. Things remain manageable, and I can do all the higher level Dev/Eng/Product work that drives the Coding. Which is a good new challenge to me, never got to go so high up the food chain with so much focus.
I emphatically do not use multiple agents at a time... I monitor what the agent I'm working with is doing, stop it if it's going down the wrong path and give feedback along the way... don't be afraid to git reset a set of changes, then tell the agent you did so and why. Spend more time on structure and design up front, it will save you a lot of headaches later.
Beyond this, I've found the "5 hour window" that anthropic gives to be pretty helpful... when I've expended my allotment for the window, odds are, I've done enough for the day even. Read, work on something else, etc... know when it's a good time to stop for a day... it's easy to over-work yourself... it takes discipline to actually break for lunch, or the day. For that matter, step away from your desk for lunch and plan to take at least an hour if you can.
You can still deliver a crap ton of value beyond what you individually could do with an agent... but there needs to be a human in the loop for anything that people depend on for their money or livelihood.
I'm not running a bunch of agents in parallel as I actually review/track most of what is getting done while it's happening.. sometimes I'll stop/rollback and rerun with updated instructions. I can't imagine anyone actually doing meaningful reviews of code generated by a half dozen agents running in parallel for example/contrast.
That said, I mostly stand by my statement... at least in how I've been using AI lately.
And I still enjoy the process actually. It's a different process indeed. But times change, and you can't always do the same thing forever.
This asynchronous engineering progress has allowed me to do more householding in between. It maybe sounds crazy, but I feel it helps me organise my life better. For me it won't cause any burnout anyway.
And this doesn't cover the scenario of code reviews. If, in the example, Ben and Alice are reviewing each other's code - Ben now has twice as much code to review as Alice does, so her AI usage also affects him negatively.