1  Prehistory: A History of Humans Speaking to Machines

Vibe coding did not appear suddenly one day. The dream of “programming in human language” is as old as the history of computing itself, and it has returned again and again under different names. This chapter begins with that history of repetition and arrives at prompt engineering, the direct prehistory of vibe coding.

1.1 The Old Dream of Natural Language Programming

WarningDrafting Status

Pre-draft. Check ownership and status in TOPICS.md at the repository root.

Brief. The idea that “writing code in natural language removes the barrier to entry for programming” did not start with vibe coding. From the “English-like syntax” that COBOL championed, to fourth-generation languages (4GLs), to CASE (Computer-Aided Software Engineering) tools, a similar promise has recurred over decades, and each time it was never fully realized. This section should trace the history of that recurrence and lay out specifically what each attempt promised and where it fell short. The goal of this section is to establish grounds for judging whether vibe coding should be seen as the latest iteration of this history, or as a qualitatively different break from it. This is the section that covers the most distant origin in all of Part 1.

Seed Questions

  • What did COBOL’s designers actually aim for with “code that reads like English,” and to what extent was that goal achieved?
  • What problem did 4GLs claim to solve when they emerged, and what trajectory did their actual adoption follow?
  • What specifically were the promises of CASE tools and the failure cases of the 1990s?
  • Is there a common cause behind the repeated failures of natural language programming, or did each attempt fail for a different reason?
  • If there is a basis for vibe coding to claim “this time is different,” what is it, or is it just a repetition of the same pattern?

Research Pointers

  • Check COBOL’s original design documents (CODASYL-related materials) and records of Grace Hopper’s related remarks in primary sources.
  • Cross-check the accounts in software engineering textbooks (e.g., Pressman, Sommerville) that cover the history of 4GLs and CASE tools.
  • Search for academic reviews or retrospective pieces covering the repeated failures of natural language programming.

1.2 End-User Programming: The Spreadsheet Precedent

WarningWriting Status

Not yet drafted. Check ownership and status in TOPICS.md at the repository root.

Brief. There was already an era when non-programmers did programming. Writing cell formulas in a spreadsheet is, formally, programming, and it is the most widely adopted case of end-user programming for decades. This section should analyze what made spreadsheets successful (verifying candidates such as immediate feedback, visual representation, and a low barrier to entry) and draw out the implications for vibe coding. At the same time, it should also address the counterexample that spreadsheet errors have repeatedly caused major incidents in practice. In Part 1, this section serves as the counterpart that approaches the theme of “programming by non-experts” from the angle of tool form rather than programming language.

Seed Questions

  • How has the term end-user programming been defined in academia (HCI, programming language research)?
  • Why were spreadsheets adopted far more widely than other natural-language or low-code attempts?
  • What actual incidents have resulted from spreadsheet errors (in finance, academia, etc.), and what do they suggest?
  • In what ways is the spreadsheet’s immediate execution feedback structure similar to and different from vibe coding’s execution-verification loop?
  • Which success factors of spreadsheets have low-code/no-code platforms inherited, and which have they missed?

Research Pointers

  • Search the end-user programming research literature (the HCI/PL crossover field, e.g., research by Burnett and others).
  • Check collections of spreadsheet error cases (such as the incident archive of the European Spreadsheet Risks Interest Group).
  • Verify exact years and figures in computing history sources covering the adoption history of VisiCalc, Lotus 1-2-3, and Excel.

1.3 The Short Heyday of Prompt Engineering

WarningWriting Status

Pre-draft. Check ownership and status in TOPICS.md at the repository root.

Brief. In the stage just before vibe coding, there was a heyday of prompt engineering that looks brief in hindsight. This piece should cover the period when “what to say and how to say it” to a large language model was treated as a standalone skill, the process by which techniques like few-shot and chain-of-thought were discovered and formalized, and the process by which the job title “prompt engineer” appeared in the job market and then quickly faded. The key question is what limitation of this technique-centered era brought about the next stage, vibe coding, which centers on iterative dialogue and execution verification. In Part 1, this piece serves as the final prehistory installment right before the transition to Chapter 2 (Birth).

Seed questions

  • When and in which community did the term “prompt engineering” first come into use?
  • What problem was each representative technique, such as few-shot, chain-of-thought, and role assignment, developed to solve?
  • Where, and why, did the boundary between “the skill of writing a good prompt” and “the skill of building something through iterative dialogue with a model” start to break down?
  • When did prompt engineer job postings peak, and when did they start to decline?
  • Can Karpathy’s Software 2.0 (2017) discussion be read as having foreseen the prompt engineering era?

Research pointers

  • Check Anthropic’s and OpenAI’s official prompt engineering guide documents as primary sources
  • Check the publication timing and core arguments of early academic papers on chain-of-thought (Wei et al. and others)
  • Collect news articles covering the rise and disappearance of prompt engineer job postings
  • Reread Karpathy, “Software 2.0” (2017) for how it connects to the discourse of this period