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.
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.
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.
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.
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…
I've seen lots of posts in the last couple of days about how quickly one can write lots of code with AI. I feel perplexed by this as I hate large programs. The largest thing I have written in the last decade is Flitter. It's only 30k lines and I believe very strongly that it is. Still. Too. Big. Even there, I wrote it purposely to allow the stuff I write *in* it to be very smol: mostly no more than 100 lines. That is the maximum I want to write in a day.
To me, all these people crowing about having written 10k lines of code in a day are idiots. If you need to write that much code in a day, you are manifestly working at the wrong level of abstraction to solve your problem.
@jonathanhogg
We need more done in actually high level languages.

@kirtai @jonathanhogg A large number of those lines of code are probably boilerplate indicative of abysmal library quality.

If a language's entire ecosystem is built on boilerplate and it's seen as normal, that is not okay.

Normalization of deviance

@lispi314 @jonathanhogg @kirtai I mean we didn't get here unintentionally. It's expensive and self sacrificial to invest a lot of time in infrastructure like programming languages and libraries (wherever you land in the stack) and make it very simple to solve the problems you are solving (and others to solve them too). It's also really hard, because not only is the problem you are solving an engineering problem but now also building the infrastructure to solve the problem. And the limiting factor is exploration not sitting down and hypothesising, researching, and cooking up some crap. Which yes is also part of the process too.
@lispi314 @jonathanhogg @kirtai you have to buy into an ideology of doing things this way. And if you're investing a lot of time in e.g. libraries for a given programming language, we already kind of know that our programming languages kinda suck and better be made irrelevant, so it also feels inefficient even when you do buy into it.
@jonathanhogg @kirtai @lispi314 and as someone who's spent a tonne of time investing in a certain stack to make things easier for other people to solve the same problem... things can wind up esoteric and difficult to onboard with (like imagine APL). It would unironically be quicker for them to use boilerplate even if long term that may not be true.