Turning non-programmers into programmers is my life’s work. It is the thing of which I am most proud as a college professor.
Getting non-programmers to program, without becoming programmers, is an important branch of computer science which this early paragraph obscures. Using a computer should not take a college education. That includes making your own programs, for whatever you want the computer to do.
This is the stated purpose of several important programming languages. It is the de facto purpose of several more. BASIC is rightly mocked, but any child who reads ‘10 print “butts”; 20 goto 10’ instantly understands control flow. Python’s visible indentation is its structure… with an invisible invitation to the tabs / spaces holy war. (It’s what tabs are for, god dammit!) The languages mathematicians use are so cursed with their brain-patterns that some of them begin arrays on 1.
Anyway.
Someone once realized you can open executables in Notepad, and tried saving ‘show a blue circle bouncing on a black screen’ as myprogram.exe. Vibe coding damn near makes that work. It’s not especially good at programming… but it’s better than a novice. And it gives novices results they can tweak and learn from, unlike ‘code-free’ approaches.
If you want to know what a compiler is doing, write an NES game, because cc65 is blazing fast and dumb as hell. A glorified assembler macro. If you want to know what an assembler is doing, fire up an Apple I emulator and code something in Wozmon’s bare 6502 bytecode. I’ve done both things - and I’d never say either is necessary to start people writing programs. We shouldn’t lament people glancing at generated code and saying ‘that looks about right,’ when we don’t do even that, for generated bytecode.
The author does full-throatedly endorse the tech for the thing it does… eventually. But I’m tired of the million ways people say ‘oh it’s so terrible… anyway here’s what I use it for.’ They’re seeing the jack-of-all-trades robot as a lazy novice within their field of expertise, and then letting it challenge them in all the fields where they are themselves a lazy novice, and they refuse to square these into a consistent judgement of its utility.
Why not have it just write C? Or hell, why not x86 assembly?
Human readability is the only way to check when the LLM is wrong, versus when your instructions are wrong. Even cc65 has a few bizarre edge cases, and that’s a script collection written by experts for exactly one architecture. An LLM as a compiler has some small chance of switching from x86-64 to knock-knock jokes. The closer the output stays to human-readable, the more chance that a human will actually read it. And once you’re in that habit you might as well fix little things yourself. Or at least write better punchlines.
If you’re going to shoot yourself in the foot, why not use a language that comes with plenty of foot guns?
All of them being rocket launchers
Fuck it, I’m going to refresh my BASIC skills and revolutionize the internet
HN comments feel like a parallel universe.
If AI doesn’t make you more productive you’re using it wrong, end of story.
It’s refreshing to see people acknowledge, “holy shit, the robot can do what?” when Lemmy feels dogmatically opposed to demonstrable results. (For diffusion tools, detractors are reduced to “well that doesn’t count.”) But the robot’s still dumb as hell. A guy claiming to run Claude in a while-yes loop to create a new programming language named his script after Ralph Wiggum. And he still had to git-revert every so often.
If you ask it to do something, the machine will bumble onward, but you can’t trust it with any damn thing.

