My experience with generative-AI has been that, at its very best, it is subtly wrong in ways that only an expert in the relevant subject would recognise. So I don't worry about us creating super-intelligent AI, I worry about us allowing that expertise to atrophy through laziness and greed. I refuse to use LLMs not because I'm scared of how clever they are, but because I do not wish to become stupider.
Post
I will say one thing for generative AI: since these tools function by remixing/translating existing information, that vibe programming is so popular demonstrates a colossal failure on the part of our industry in not making this stuff easier. If a giant ball of statistics can mostly knock up a working app in minutes, this shows not that gen-AI is insanely clever, but that most of the work in making an app has always been stupid. We have gatekeeped programming behind vast walls of nonsense.
@jonathanhogg I get the strong impression we don't want to! We want to feel like Real Engineers doing Real Programming.
This can really be seen when it comes to the web...
@jonathanhogg No, it's still difficult to program something so that it's exactly how you want it to be. It's apparently been underestimated how often that doesn't matter ("mostly working app" where getting it to working is more effort than starting from scratch), but we will see how that develops in the long run. Maybe plausible deniability is really enough for many things.
Nobody is gatekeeping clear, testable requirements and communication without misunderstandings. People usually just can't do that.
@dasgrueneblatt I have now spent 40 years programming commercially in dozens of different languages; I have taught programming to CS students, art students and little kids and my experience is that most programming is hard because we have made it so. I absolutely understand the frustration of people who know what their problem is, but don't feel equipped to solve it because the tools available to them are too big and confusing. Vibe coding is our own fault
@jonathanhogg Well yes, but vibe coding does not solve that, or does it? People kind of know what they want, but they still cannot get it. Just something that looks like it and is really hard to debug. That's got be even more frustrating? Maybe I misunderstood you. I'm definitely not arguing that programming (what's the other one called now? the non-vibe programming. Does it have a name yet?) is easy and fun and the tools are good, oh no.
I'm honestly very surprised by the love for chat interfaces. I don't get it. But apparently that's an amazing way to for example search the web. Not keyword -> list of links, but full question -> long answer text -> follow-up question -> even more text, etc. I thought people don't like to read long texts? But apparently the key is something in the wording. Make it say "i" and "talk" to me and add emotions.
Maybe we'll get better tools out of this in the long run? Harness the power of the ball of statistics to create not the subtly wrong full app, but parts, smaller, clearly delineated building blocks of well-known, testable code that are easy to put together to create the whole thing? Okay, that's libraries, aehm, but with a different interface? Scratch/blockly but as a chat?
We seem to have largely stopped innovating on trying to lower barriers to programming in favour of creating endless new frameworks and libraries for a vanishingly small number of near-identical languages. It is the mid-2020s and people are wringing their hands over Rust as if it was some inexplicable new thing rather than a C-derivative that incorporates decades old type theory. You know what I consider to be genuinely ground-breaking programming tools? VisiCalc, HyperCard and Scratch.
@jonathanhogg By design… why simplify when your ability to hire thousands of engineers means you’re safe from competition? Why simplify when your “specialist knowledge” (of overly-complex crap) fetches lucrative consulting fees. Capitalism incentivises mediocrity with high barriers of entry. The complexity is a feature, not a bug. That’s why most of the mainstream stack is useless to us for Small Tech/Small Web. And why it’s essential that we embrace simplicity in the alternatives we’re building.
You know what? HyperCard was a glorious moment in time that I dearly miss: an army of non-experts were bashing together and sharing weird and wonderful stacks that were part 'zine, part adventure game and part database. Instead of laughing at vibe-coders, maybe we should ask ourselves why the current state-of-the-art in beginner-friendly programming tools is a planet-boiling roulette wheel.
@jonathanhogg hypercard was such a formative experience for me as a kid, I don’t think I would have ever gotten into programming without it
@jonathanhogg because the people pushing LLMs killed Flash to make room for LLMs
On the gripping hand, if you're a trained programmer using vibe-coding because of a perceived increase in your productivity, or pressure from management to increase your productivity, I would refer you to my first post in this thread…
@jonathanhogg That's the kind of talk you usually hear just before someone invents themselves a new language. Just saying.