I wouldn’t say this myself without a whole lot of asterisks, but…there is something to this line of critique for sure.
-
I wouldn’t say this myself without a whole lot of asterisks, but…there is something to this line of critique for sure.
Jonathan Hogg (@jonathanhogg@mastodon.social)
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.
Mastodon (mastodon.social)
-
I wouldn’t say this myself without a whole lot of asterisks, but…there is something to this line of critique for sure.
Jonathan Hogg (@jonathanhogg@mastodon.social)
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.
Mastodon (mastodon.social)
Downthread is really good:
https://mastodon.social/@jonathanhogg/116092228605900896…and…this, BINGO:
https://mastodon.social/@jonathanhogg/116099686566699085 -
I wouldn’t say this myself without a whole lot of asterisks, but…there is something to this line of critique for sure.
Jonathan Hogg (@jonathanhogg@mastodon.social)
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.
Mastodon (mastodon.social)
@inthehands i think that what you're saying/reinforcing is between naive and dangerous. What contemporary agentic LLMs are doing is not "stupid work". It is work that most people couldn't do, and now requires GWatts of power & almost unimaginable training sets, & incredibly clever once-human sw engineers to be possible at all.
Should there have been more focus on making programming more possible for "non-programmers" ? The hypercard example is a good one, so perhaps yes. But not 100% clear ...
-
Downthread is really good:
https://mastodon.social/@jonathanhogg/116092228605900896…and…this, BINGO:
https://mastodon.social/@jonathanhogg/116099686566699085There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands A lot of the vibecoding push also seems to miss that... being able to write more lines of code in less time has literally never been the actual bottleneck to productivity writing code.
The hard part - the part that requires thinking, planning, designing, figuring out obscure errors and navigating weird edgecases, etc. - all happens when you're not just typing out the solution you've come up with anyway. -
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands I just watched a video today of a presentation about LLM model collapse, and toward the end, the presenter talked about the distinction between semantics (abstraction) and syntax, and how LLMs fundamentally have to operate on syntax. But humans can handle semantics; semantics are the interesting bits.
Link for those interested: https://youtu.be/ShusuVq32hc
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands hypercard was such a great way to learn how control works as a child. it is a shame for sure.
for sure qbasic is good enough for user friendly... that was comprehensible to me when I was eight. I imagine most adults can handle it if they are actually curious.
LabView is a whole mess, they had a good idea but made it expensive and complicated in spite of itself.
You know, the most accessible programming language might be Max/MSP or PureData. Weird.
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
On that topic, see my text in the “Software in Context” section at the bottom of this reading assignment from one of the courses I teach:
“Generating code is the easiest part of software development.”
https://comp127.macalester.digital/f25/resources/classes_objects_state_behavior/
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands Thank you! The real difficulty in programming was never the coding. It was in sufficiently and correctly understanding the problems you're trying to solve. If you understand what you want to achieve well-enough to write an English language description of everything, the coding pretty much follows.
There's a lot to be said for the dismal state of modern software dev practices these days. The "left-pad" debacle is an exemplar. As a security guy, don't let me get started on that!
-
On that topic, see my text in the “Software in Context” section at the bottom of this reading assignment from one of the courses I teach:
“Generating code is the easiest part of software development.”
https://comp127.macalester.digital/f25/resources/classes_objects_state_behavior/
There’s a second wrinkle to the OP’s critique beyond “abstractions should be better.”
The fundamental thing that makes programming hard is bridging the gap between ambiguous natural language and an unambiguous programming language. That’s hard.
That’s hard partly because the things that make a language unambiguous make such a language deeply unintuitive to humans, no matter how much it resembles English. BUT…
…the other reason it’s hard is that it forces you to decide •exactly• what you want.
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands speaking as someone who has spent his career in this particular cul-de-sac, the problem with english-like syntax is not that you can't write a good program in it; the problem is the very premise that you don't have to be a programmer to write a program.
i've had a long and moderately profitable career undoing the problems caused by such people.
i'm not sure this entirely puts LLMs in the same category. in some ways yes; in some ways no.
some of the folks vibe coding are programmers.
-
There’s a long history of people thinking that they’ve made programming easier by changing the syntax, or by making it not look like programming. That history is mostly a parade of embarrassments (COBOL! 4GLs!). One big subset of the current AI hype is just that mistake again — “vibe coding is programming in English!” — but now compounded by the nondeterminism of the tool.
Hogg’s thread correctly navigates around that mistake, focusing on •abstractions• instead of •syntax• as the problem.
@inthehands in Klein's interview with Jack Clark (Anthropic) at 06::00 he describes how you need to talk to Claude to get good results he is more or less describing the exact processes of most software engineering. I don't think this is a coincidence
There is software that is easy to develop, because the goal is completely understood; there is software that is much harder to develop because the goal is an evolving dialectic betwene user & developer. You can't make the 2nd one that much easier
-
@inthehands A lot of the vibecoding push also seems to miss that... being able to write more lines of code in less time has literally never been the actual bottleneck to productivity writing code.
The hard part - the part that requires thinking, planning, designing, figuring out obscure errors and navigating weird edgecases, etc. - all happens when you're not just typing out the solution you've come up with anyway.@inthehands Like - sure, the LLM can vomit out lines of code faster than a human, but it's code of lower quality (see: https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report ), that is generally harder to maintain, more error prone, increases technical debt, is less secure, and is generally less efficient than what a competent human could produce;
and it's already been established that number of errors even with human written code scales to lines of code pretty reliably, so, more lines is generally a bad idea either way. -
@inthehands A lot of the vibecoding push also seems to miss that... being able to write more lines of code in less time has literally never been the actual bottleneck to productivity writing code.
The hard part - the part that requires thinking, planning, designing, figuring out obscure errors and navigating weird edgecases, etc. - all happens when you're not just typing out the solution you've come up with anyway.@miss_rodent
Totally, see my subsequent post which I was gathering as you typed yours! -
@inthehands A lot of the vibecoding push also seems to miss that... being able to write more lines of code in less time has literally never been the actual bottleneck to productivity writing code.
The hard part - the part that requires thinking, planning, designing, figuring out obscure errors and navigating weird edgecases, etc. - all happens when you're not just typing out the solution you've come up with anyway.@miss_rodent @inthehands To bastardize an alleged Dijkstra quote: "Computer programming is as much about typing as classical music is about piano keys."
-
@miss_rodent
Totally, see my subsequent post which I was gathering as you typed yours!@inthehands Ah, fair, missed it because I was typing this (and re-finding the link).
-
There’s a second wrinkle to the OP’s critique beyond “abstractions should be better.”
The fundamental thing that makes programming hard is bridging the gap between ambiguous natural language and an unambiguous programming language. That’s hard.
That’s hard partly because the things that make a language unambiguous make such a language deeply unintuitive to humans, no matter how much it resembles English. BUT…
…the other reason it’s hard is that it forces you to decide •exactly• what you want.
@inthehands "The fundamental thing that makes programming hard is bridging the gap between ambiguous natural language and an unambiguous programming language." ... no, what makes it hard is the actual specifications are not really known no matter what language you use to describe them.
this is the entire motivation for the "agile" development pattern of the last 20-30 years.
without the cycle of specify-develop-use-respecify, you cannot approach the "true specification", and that's hard.
-
@inthehands Ah, fair, missed it because I was typing this (and re-finding the link).
@miss_rodent Oh, clear race condition — and I think you won the race! Just great minds etc.
-
There’s a second wrinkle to the OP’s critique beyond “abstractions should be better.”
The fundamental thing that makes programming hard is bridging the gap between ambiguous natural language and an unambiguous programming language. That’s hard.
That’s hard partly because the things that make a language unambiguous make such a language deeply unintuitive to humans, no matter how much it resembles English. BUT…
…the other reason it’s hard is that it forces you to decide •exactly• what you want.
To some extent, that’s the job of abstractions:
Maybe I don’t want to have to decide exactly what a button should look like, so I use the OS’s provided Button widget.
Maybe I don’t want to have to decide exactly how integer addition should work, so I use the language’s integer type.
In both cases, part of what the abstraction provides is “just do this thing the standard way.” But…
-
@inthehands speaking as someone who has spent his career in this particular cul-de-sac, the problem with english-like syntax is not that you can't write a good program in it; the problem is the very premise that you don't have to be a programmer to write a program.
i've had a long and moderately profitable career undoing the problems caused by such people.
i'm not sure this entirely puts LLMs in the same category. in some ways yes; in some ways no.
some of the folks vibe coding are programmers.
@fishidwardrobe @inthehands "the problem is the very premise that you don't have to be a programmer to write a program." -- well put. i have been known to rant about the concept of "tools for non-programmers" (to do the kinds of things done with programming), as in, what is a non-programmer? and don't they cease to be one once they successfully use such a tool, by definition?