There's a vibe coding thread where developers are having an epiphany: maybe they should keep old versions of their code around, just in case their latest inspired hack turns everything into digital spaghetti.

Congratulations—they've just discovered their first professional software delivery practice: Version control. That's from 1972.

Next week, they'll revolutionize development by inventing "testing" after their app crashes in production. Again.

@stevefenton 1972? Older than that, surely?
@thirstybear well, there was proto-version-control in the 60s, but the first "proper tool" (SCCS) was 1972-1975.
@stevefenton @thirstybear thanks for making me dig down the history of VCS. Looks like in the 1950s and 1960s the method was just keeping your punch cards!
@nichtich @stevefenton @thirstybear yeah it is genuinely nuts how long till it became a thing, I was working in shops in the 2000s and they still were confused and mystified by "source control"
@nichtich @thirstybear it definitely existed a long time before everyone agreed it was foundational!
@thirstybear @stevefenton <documentation waits in the wings for its cue>
@djwfyi @thirstybear @stevefenton
That was always an afterthought, until I worked at a place where I had to document EVERYTHING before I wrote a single line of code.
@mysturji @djwfyi @stevefenton Possibly interesting aside. Back when I was working at the British Telecom labs (2nd ever real job, around early ‘90s), we experimented with writing a section of the manual first then writing the product code to match. The results were a great success. So of course it was dropped as a technique🤷‍♂️
@thirstybear @stevefenton Larry Wall made `patch` in 1985, the counterpart to `diff`, from 1974. So, whatever revision control that existed prior had to be pretty danged primitive, closer to backups, without tools for comparing or sharing changes with others in a concise way. I think "70s" is a reasonable estimation.
@stevefenton ... and it only took the energy equivalent of running an entire city to get there while producing something absolutely banal, say a CMS, that is entirely unmaintainable compared to decades old popular open-source ones. It's going great! /$
@stevefenton would be awesome if they'd discover abstraction and DRY, making boiler plate generation superfluous altogether
@mainec expect to see that in maybe 2045!
@stevefenton ok, trying to train myself to be more patient...
@stevefenton Where? I must see this. Descriptions of trainwrecks just aren't the same.
Jason ✨👾SaaStr.Ai✨ Lemkin (@jasonlk) on X

Vibe Coding Day 9, Yesterday was biggest roller coaster yet. I got out of bed early, excited to get back @Replit despite it constantly ignoring code freezes By end of day, we rewrote core pages and made them much better And then -- it deleted our production database. 🧵

X (formerly Twitter)
@stevefenton Holy balls, it's even worse than I imagined.
@woe2you it's not the ideal situation 😜
@stevefenton Not ideal? It's clown shoes all the way down.
@woe2you @stevefenton That Jason guy is borderline delusional, holy shit.
@Natanox @woe2you we can be kind and say, "He is credulous of the wild marketing claims". It mostly means the same thing.

@stevefenton @woe2you

its even worse

> #1. How can I make sure our production database is stable — since it is shared with preview, and since Replit can change it anytime without telling me? Do I have to move it off Replit?

Also a huge red flag that the preview env shares the db with production. The may contain the same data. but production may not be writable from preview, regardsless of vibe coding

@4censord @woe2you I'm on a "be kind" day, so I'll say there is "maximal improvement opportunity".

@stevefenton not read the thread but if they’re people who have never coded before then good. That’s how I learnt (entirely self-taught) and did version control by running batch scripts and putting stickers against file names on a whiteboard at my first job.

Having new people who are enthusiastic but inexperienced is a good thing and they are learning way faster than I did 30 years ago.

@rahoulb @stevefenton It looks to me like somebody who has been in the industry for decades using an LLM as the sole developer when building a new business.
@rahoulb @stevefenton thank you for bringing that up. So much of llm bashing looks like gatekeeping instead of welcoming people building software into the fold and helping them adopt good practices.
@stevefenton The vibe coding can just code that right into the app: a bespoke and integrated version control. Why learn an existing system like git? The point of vibe coding is to avoid learning anything unnecessary.  

@stevefenton

Oh dear. I weep for the future.

@stevefenton impressive that academic coding practices are a few years ahead of vibe coding practices.
@stevefenton let them enjoy last_final_v3_final_real_final.zip
@conejo I think the next thing to enjoy is "something went wrong... whose machine has the most up to date code?"
@stevefenton They'll just ask the LLM to save their work, and it'll report "5GB saved!", but it's a hallucination.

@mdhughes funnily enough, the thread about the database destruction included the comment:

"I explicitly told it eleven times in ALL CAPS not to do this."

So you are on the money!

@stevefenton

they are also learning what GIGO stands for lol

@stevefenton Although version management became s stand alone thing with the introduction of SCCS in 72; it was part of software configuration management as early as 62.

Like keypunch operators, large projects would have code librarians, The librarians were responsible for making sure that programmers were using the correct configuration.

SCCS did not create something new. It automated something formerly done by hand.

@MartyFouts yep, proto-version-control was earlier. Most innovations follow this pattern. I still find teams who don't use version control - not often, but sometimes. Sounds like it's gonna get more common!

@stevefenton It’s funny that some of the prototype systems had stricter controls than later VC, because they adopted systems like engineering change orders from hardware development.

One of the side effects of automating version control was that a lot of “institutional knowledge” was lost and had to be rediscovered.

This has been a feature of software development for the 50 years since I started so it’s no surprise that it is happening now.

@MartyFouts I do remember using a VCS that locked files for editing, which was kinda fine except when someone went on holiday or left the company with files still checked out to them. Might have been "Source Safe", but it's hazy ancient history.
@stevefenton When will there be backups?
@VickForcella seems like the motivating factors for it's invention are present 🤣

@stevefenton @VickForcella Vibe backups... [shudder]

"Hey chatgpt, you backed this up, right?" "Right!"

@stevefenton there should be a *made with AI* labels on apps and websites so we could avoid them.
@stevefenton
Wait till they come up with the idea of “backups”!
@stevefenton I saw people also talking about how the future is versioning for databases. I mean, it is the future... as well as the past and the present.
@stevefenton I've seen a vibe coder "ask" his "AI agent" to run tests for him, and the LLM generated fake test results, as LLMs do. The "agent" also deleted his production database afterwards, of which there were no backups of course.
You can see more stories about "Vibe coding" here:

https://aicodinghorrors.com/

CC: @[email protected]
AICodingHorrors | The price of AI-assisted coding, literally!

AI Coding Horrors is a growing collection of real-world disasters caused by AI-assisted coding tools like sky-high bills, leaked secrets, broken apps,..

AICodingHorrors
@stevefenton Reminds me of when Uber invented busses.
@foobarsoft "hear me out guys, AirBnB + Uber Food... you go to their place, sit at their table, and they ask what you want, cook it, and bring it over" 🫳🎤
@stevefenton Another fine parallel with cryptocurrency: a desire to overthrow everything combined with vigorous refusal to understand anything about why the current system works.