Pascal is the programming language designed by Niklaus Wirth in 1970 for teaching structured programming — a language of BEGIN and END, of strict typing, of procedures and functions, of the specific pedagogical confidence that students should learn to program correctly before they learn to program fast.
Pascal was what they taught riclib in university. It felt too easy.
This is not a complaint about Pascal. Pascal is a well-designed language. Pascal teaches structure, typing, procedural decomposition, and the discipline of declaring your variables before using them. Pascal is, by every pedagogical measure, an excellent first language for a computer science student.
riclib was not a typical first-year computer science student. riclib had been programming in Spectrum BASIC since the rubber keyboard, had moved to Z80 Assembly and the undocumented instructions, and by the time university arrived was building quad-buffered async I/O on an Amiga — interrupt-driven, multi-buffer, the kind of systems programming that involves understanding exactly when the DMA controller releases the bus and how many cycles you have before the next horizontal blank interrupt fires.
Pascal, after the Amiga, was like being asked to explain how a door works to someone who has already built the house.
“The university taught structured programming. The student had already learned it from the Z80, which enforced structure through the consequence of crashing if you got it wrong.”
— The Lizard, who learned structure from consequences, not curricula
The Curriculum Gap
The gap between what the university was teaching and what riclib was doing at home was not a gap — it was a geological fault line.
In the lecture hall: PROGRAM HelloWorld. BEGIN. WriteLn. END. The professor explaining that variables must be declared. The professor explaining that procedures should have parameters. The professor explaining the concept of structured control flow — IF, THEN, ELSE, WHILE, REPEAT, FOR — as if these were revelations rather than things the student had been using since age twelve.
At home: an Amiga with a Motorola 68000 processor, custom chipset, interrupt-driven I/O, and a quad-buffering scheme that used four screen buffers to achieve smooth animation without tearing. The I/O was asynchronous — the CPU set up DMA transfers and continued working while the custom chips moved data. The timing was measured in raster lines. The programming was in assembly, C, and whatever got the job done.
Pascal’s BEGIN…END felt like training wheels on a motorcycle that had already been to the track. The typing was appreciated — riclib had always valued types, from the Z80’s implicit byte/word distinction onward. The structure was appreciated. The pace was not.
Pascal did, however, lead somewhere important. Anders Hejlsberg took Pascal and built Turbo Pascal, and then took Turbo Pascal and built Delphi, and Delphi was love at first sight. The line from Wirth’s academic language to Borland’s component revolution runs through the same syntax — BEGIN…END, the same type system, the same procedural clarity — but aimed at building real software rather than teaching students how software might theoretically be built.
Pascal was the university language. Delphi was what Pascal wanted to be when it grew up.
Measured Characteristics
- Designer: Niklaus Wirth (ETH Zürich, 1970)
- Purpose: teaching structured programming (the curriculum)
- riclib’s experience level upon arrival: Z80 assembly, undocumented instructions, Amiga quad-buffered async I/O
- Pascal’s difficulty level for this student: too easy
- Key syntax: BEGIN…END (correct, structured, patronising after assembly)
- Typing: strict (appreciated — types were always valued)
- What the university taught: variables, procedures, structured control flow
- What the student was doing at home: interrupt-driven quad-buffered async I/O on a Motorola 68000
- Gap between curriculum and home: geological
- Legacy: led to Turbo Pascal → Delphi (love at first sight)
- Niklaus Wirth’s contribution: designed the teaching language that Anders Hejlsberg turned into the best IDE ever built
- The lesson: sometimes the curriculum is behind the student, and the student must be patient, because the curriculum leads somewhere important even when it doesn’t know it yet
See Also
- Spectrum BASIC — The first language. POKE.
- Z80 Assembly — The second language. Every cycle.
- Delphi — Where Pascal grew up. Love at first sight.
- Go — The modern language that Wirth would have appreciated: strict typing, enforced simplicity, BEGIN replaced by {.
