The author, a longtime programming educator, expresses deep ambivalence regarding "vibe coding" (programming via large language models like Claude). While acknowledging its demonstrated effectiveness in creating robust systems, the author finds the process personally unsatisfying as it bypasses the enjoyable, puzzle-solving aspect of traditional coding.
The core argument pivots on the concept that programming languages exist primarily for human expression and methodology (citing Abelson and Sussman's SICP preface), not machine convenience. If AI can now handle the tedious, machine-focused aspects of coding (like memory management or undefined behavior avoidance), then languages optimized for human ergonomics (like Rust, Python, or even C++) become suboptimal for this new paradigm. The author posits that if vibe coding is the future, there should be a corresponding "Vibe-Oriented Programming Language" (VOPL) that favors machine convenience—potentially resulting in output closer to C or x86 assembly, rather than high-level, human-friendly constructs. The author sees this shift as potentially analogous to the historical resistance against stored-program computers, viewing hand-coding as a potentially obsolete pedagogical step.
Why Use Human-Optimized Languages for AI Code Generation? The Case for VOPL
0:00 Author's Stance on Vibe Coding: The author dislikes "vibe coding" (programming via LLMs) because it removes the intellectual satisfaction and puzzle-solving joy from coding, making it feel like cheating, despite acknowledging its functional success.
0:28 Vibe Coding Works (Despite Author's Discomfort): The author forcefully admits that LLMs create robust, complex, working systems, refuting earlier skepticism that they were only good for alternative search.
0:46 Programming Languages are for People: Citing SICP, the author stresses that languages are formal media for human expression and methodology; machines only care that code executes.
1:08 Human vs. Machine Optimization: Virtues praised in languages (safety, abstraction, concurrency models) are human affordances, not machine necessities. Machines simply care about execution.
1:30 The Core Question: If AI handles the machine-centric rigor (memory, undefined behavior), why use languages designed for human convenience (like Python, Rust, Haskell)?
1:40 Impertinent Proposal: The author argues that a language designed for vibe coding should dispense with human ergonomics in favor of machine convenience, suggesting C or even x86 assembly as potential targets.
2:16 Vibe-Oriented Programming Language (VOPL): The author suggests the emergence of a VOPL, which might manifest as executable pseudocode that simultaneously writes assembly, or a form of modern literate programming where the AI generates optimized machine code based on human expression.
2:50 LLM Training Bias: Current LLMs are good at Javascript/C++ only because they are trained on vast amounts of human-written code in those human-centric languages. Bootstrapping a VOPL would be difficult but perhaps already occurring implicitly.
3:17 Historical Parallel: The author concludes by comparing the current apprehension toward AI coding to historical resistance against stored-program concepts (like Grace Hopper arguing against machines writing instructions for other machines), suggesting a major paradigm shift is underway. Hand-coding may become a quaint, preliminary stage of education, much like contour drawing for modern graphic designers.