Vibe Coding in the 90s

(ssg.dev)

83 points | by sedatk 13 hours ago ago

34 comments

  • marcodiego 12 hours ago

    The closest to vibecoding in the 90's was to open Borland's Turbo C help in any page, copy and paste the example and modify it until you understand it or until it did what you wanted.

    Microsoft Quick Basic help was also gold.

    • eholk 12 hours ago

      You know, that's exactly how I learned to program.

      I started up QBasic knowing nothing other than that it seemed like a thing for programming computers and programming seemed like a cool thing to do.

      I typed in random words, and eventually I typed "screen". When I pushed enter, QBasic capitalized it, so it seemed important. I hit F1 and read the help. It made no sense, but the example ran and had other capitalized words so I could repeat the process.

      Eventually I started making really terrible text-based Final Fantasy knock-offs.

      • hrayr 11 hours ago

        Wow, that’s exactly my memory. As far as my family was concerned I was spending day and night in front of the “blue screen”. I got as far as programming a GUI by copying windows 95 pixel by pixel, text editor, fonts, cd player, minesweeper. I wish I had the code.

      • vpShane 11 hours ago

        mIRC - /help

    • CaptainOfCoit 12 hours ago

      The closest to vibecoding in the 10's was to keep searching Stack Overflow for questions vaguely asking similar things as what you wanted and copy-paste things until it kind of worked.

      • CjHuber 12 hours ago

        Which, as we all know, actually worked quite well. But wow this reminds me in how long I haven't had to use stack overflow for anything

    • nurettin 8 hours ago

      Turbo pascal help for me! The polynomial example taught me how to use pointers. Before that, I could only use static arrays up to a certain length.

      Learning about heap allocation was euphoric. I kept beaming because I had unlocked infinite memory, and people around me didn't get why I was such a happy teenager.

      To be fair, I already knew about memory regions from PEEK/POKEing on a commodore as a child, but it was always static and pre-populated.

  • juliangamble 13 hours ago

    > Anything more complex than a few lines, you can just copy it from lib\ folder of the CD-ROM. There's a component for everything. You want to left-pad a string?

    This got me.

    • crtasm 12 hours ago

      I checked and there's also lib\str\basic\pad\right - they really thought of everything!

  • mlyle 12 hours ago

    You know, honestly: thinking back to 1992 as a 13 year old, and downloading ircii source code and hacking on it (commenting out the 3 lines with build errors on AIX and then seeing what happened)... trying to add a function here or there or wire in a slash command...

    This was a -great- experience. Inheriting code and not knowing what to do with it and trying to forensically triangulate what is going on and learning to read code in the process: this was the best way to learn. The argument that vibe coding is something like that is maybe one of the more hopeful arguments i've heard about it.

    • apsurd 12 hours ago

      I remember stumbling into coding by way of CSS and HTML. For advanced functionality well there was "scripts" that you copy and paste in and magically worked. The ultimate boss came when stumbling onto "php scripts" that you needed some particular cgi-bin thing to run. Follow the instructions, paste in the php script and it worked! This PHP stuff led to Wordpress. Follow those instructions and WOW mind blown, full end-to-end site with admin, login, database, CRUD, and it looked beautiful.

      The problem was I couldn't actually understand any of the code. I learned CSS and HTML!

      After many trials, I used what I knew and realized well whatever this PHP code is doing, I'm going to put it in a div with style="border:5px solid red" and see what it does that way.

      Fast forward 2, 5, 10, 12 years and that's how I learned to be a programmer.

    • jack_pp 11 hours ago

      had a stint as a programmer for a dark hat org back in the day and hacked my way around rdesktop to make it async. When i say hack I literally hacked down the entire codebase until there was not much left except the login flow which consisted of.. a LOT of functions that needed to be made async. I did not have the slightest idea what I was looking at, looked like arcane magic to me but I eventually managed to make rdesktop into what was probably the fastest RDP bruteforcer there was thanks to boost.asio and chopping it up months on end. I remember the bruteforcer that was circling the forums made a thread for each client, ate up a lot of ram and CPU and it crashed a lot too. Mine wasn't even keeping the machine at 20% CPU, couple gigs of RAM but was topping the bandwidth of the server.

      I'm not proud of creating a malevolent tool but am proud of the technical achievement of it considering I just finished high school.

    • BoiledCabbage 12 hours ago

      The problem is with vibe coding a beginner just gives a new prompt to edit it. In the past, the code you got was static so you had no choice but to learn it little by little if you wanted to change it.

      • CaptainOfCoit 2 hours ago

        > In the past, the code you got was static so you had no choice but to learn it little by little if you wanted to change it.

        Seeing a lot of programmers being raised in the age of Stack Overflow, there was a ton of web developers who definitly didn't understand the code they copy-pasted from Stack Overflow, and some of them literally had a spray-and-pray approach to programming that makes you question how it worked sometimes when they had almost no understanding of what the code actually did.

        But they managed to produce stuff that made webpages do things, so management was happy.

  • novoreorx 9 hours ago

    At first glance, it seems to be a satire of vibe coding, but after reading it a second time, I find that the author is more sarcastic towards those who think AI will replace programmers. Did I get it right?

  • fogleman 11 hours ago

    This is so good, and based on some of these comments I don't think everyone is quite getting it.

    • gugagore 2 hours ago

      Please share your understanding!

  • ef2k 11 hours ago

    Have to admit, this crossed my mind back in the 2000s, what if we sell widgets as a service, lol. Hilarious.

  • al_be_back 10 hours ago

    Well, by that token, opensource + stackoverflow was vibe coding all along. I can download, pick and choose, mix, modify, run, ship lol

    how about developing using WYSIWYG? drag + drop + connect + theme/style + preview.

  • aninteger 13 hours ago

    Vibe coding in the 90s was probably like learning C and pointers for the first time and then deciphering strange errors when you couldn't figure out how scanf worked, so you added asterisks and ampersands to the code until it compiled.

    • wiremine 12 hours ago

      This is pretty close. I once spent 4 hours in college (circa 1997) looking for an error in a C++ program. The compiler's error messages were rubbish.

      It ended up being a missing semicolon in an odd spot and the compiler was just confused.

      I remember walking homing thinking, "hey, if I can survive that, maybe I can just hack this CS thing..."

      • zikzak 11 hours ago

        I once spent a couple hours debugging a perl cgi script. Nothing worked. Called in my colleague. Looks fine. We both were tearing our hair out. Sent it to the line printer, ordered pizza, and one of us read the code while the other typed it in. Couple hours later we finished and it worked.

      • tuveson 12 hours ago

        C compilers will still shit themselves and give meaningless error messages if you forget a semicolon after a function declaration in a header file.

        • fragmede 10 hours ago

          Oof. Microcontrollers? LLVM and Clang has improved the situation somewhat for the rest of the world.

    • fritzo 12 hours ago

      Look how far we've come! Now we add random .unsqueeze(-1) and .permute(-1,-2) until our PyTorch models run without shape errors!

  • neilv 12 hours ago

    I'm hoping for a really great IP lawsuit against a corporate code LLM user.

    Until then, the emergent behavior of most corporations' incentive structures will be to get away with it in the short term, due to everyone pursuing their bonuses and promotions, while leaving the legal repercussions as someone else's problem.

    Plaintiff: "In summary, they clearly copied our product's code."

    Judge: "According to all the evidence of how they used your IP, looks like you now own their company."

    Defendant: wearing tie-dye shirt, whimpering "But... vibe coding..."

    Plaintiff: "Your honor, we're asking them to vacate their office building by the end of the day, since we've scheduled an, ahem, ozone treatment for tomorrow morning."

    Defendant: pulls out bong, takes a hit "Can't you feel the vibe, mannn..."

  • briansm 3 hours ago

    I believe this is what "Cargo-Cult Programming" is.

    https://en.wikipedia.org/wiki/Cargo_cult_programming

  • fragmede 10 hours ago

    Oh man, remember CPAN? And COM and ActiveX and OOP? The attempts to make reusable things was definitely juiced by open source repositories of libraries out there for the using.

  • Razengan 12 hours ago

    "Vibe coding" is some serious "Fellow kids" cringe

  • alganet 12 hours ago

    Fair point. There is much laziness in the package approach to software development, and unless you're doing pure assembly, you're no less guilty for vibe coding than the guy who plays npm like lego.

    I think the most interesting point in the post is this one:

    > I can create anything. Let me just take a look at that CD.

    I like the idea of shifting the discussion from "how it is done" to "what are we doing".

    Therefore, the point here is that we should do things the CD can't.

    In that sense, the package thingy is better than LLMs. It gives you a directory that you can explore and the choice of not wasting time doing things that are already on the CD.

    But then, you can say that directory is very large today. So large, we might need an index. And LLMs are just that. But if they're that, then there's some value in finding novel ways to glue things together.

    And round and round we go.

  • 2OEH8eoCRo0 12 hours ago

    That's hilarious

  • raw_anon_1111 11 hours ago

    Get off my lawn. When I wanted to vibe code I had to type 65C02 assembly language code from the back of InCider magazine, Nibble and Beagle Bros books.

  • keyle 12 hours ago

    My personal experience

         80/90s -> books -> pass out -> code
         2000s  -> altavista/tucows then google -> swearing -> code
         2010s  -> stack overflow -> swearing, hair pulling -> code
         2020s  -> LLM -> swearing, hair pulling, silent screaming -> code
    
    It's going swell. /s (?)
    • reactordev 12 hours ago

      I think you missed a few “Age of Deprecation”’s in there forcing you to completely rewrite core chunks of whatever project you’re working on. Just need to buy the CD 2.0