Because syntax alone rarely conveys purpose, programs need signals that communicate intent: meaningful identifiers, well-chosen abstractions, and comments that explain “why” rather than restate “what.” This is where Abelson’s point gains practical force—humans infer goals and invariants, while machines only follow instructions. A function named calculate_total_with_tax communicates direction before a reader opens it; a name like doStuff does the opposite.
Consequently, good code often reads like an argument: it introduces concepts, builds them up, and uses them consistently so the reader can predict what comes next. [...]