Thursday, January 4, 2024

Niklaus Wirth, RIP

Bertrand Meyer (Hacker News, Slashdot, Reddit):

We lost a titan of programming languages, programming methodology, software engineering and hardware design. Niklaus Wirth passed away on the first of January. We mourn a pioneer, colleague, mentor and friend.

David M Williams:

Wirth is well-remembered for his pioneering work in programming languages and algorithms. For these achievements, he received the ACM Turing Award in 1984, inducted as a Fellow of the ACM in 1994, and a Fellow of the Computer History Museum in 2004.

They include, among many, being chief designer for the programming languages Euler (1965), PL360 (1966), ALGOL W (1968), Pascal (1970), Modula (1975), Modula-2 (1978), Oberon (1987), Oberon-2 (1991), and Oberon-07 (2007).

Of these, perhaps the best-known and most used is Pascal. It was the major teaching language of introductory Computer Science courses well until the 1990s when Java, and later Python, began to take over.

Mike James:

Pascal was a language that was designed specifically for teaching good programming practice.These were more innocent times and object oriented programming had not taken hold. What mattered was getting away from the unstructured mess of assembler and Fortran to a modern implementation of structured programming. Pascal, as first introduced, was a vehicle to write structured code - it had control structures that eliminated the need to use the goto. Today it looks fairly standard, but at the time many programmers hated its over-constrained fussiness. Yes, there was a big anti-structure contingent. We have come a long way since then.

So too was it with his next language, Modula. The buzzword of the time was structured-modular programming and Modula pushed further into the encapsulation of code into modules which interacted in controlled ways. This approach developed evantually into encapsulation within the object-oriented paradigm.

Pascal was a huge sucess in the sense that most university Computer Science departments adopted it as their main teachning language. This was a golden age because they had a language which was built to make what they were teaching clear. Compare this to todays mess of different languages each with flawed academic credentials. However Pascal only took off in the wider world when Borland introduced the world to Turbo Pascal, a much more capable and practical programming enviroment that found in the original.

Jeff Dean:

Pascal was the first language I used seriously (initially on the UCSD p-System and later via Turbo Pascal), and I got my hands on this great book that he wrote when I was in middle school.

I also love the anecdote when asked about how to pronounce his name:

“Whereas Europeans generally pronounce my name the right way (‘Ni-klows Wirt’), Americans invariably mangle it into ‘Nick-les Worth’. This is to say that Europeans call me by name, but Americans call me by value.”

See also: Introduction to Macintosh Pascal, An Introduction to Programming Using Macintosh Pascal.

Previously:

Update (2024-01-05): See also: Association for Computing Machinery, John Carmack, Tim Sweeney.

Update (2024-01-09): J. B. Rainsberger:

I’ve been reading Kent Beck’s writing on Substack and on the occasion of the death of Niklaus Wirth, he shared part of a conversation he’d had with the professor when Kent had arranged to sit next to him on the flight home from a conference they’d both spoken at.

Extreme Programming was just starting to crackle & pop, so I’m sure I was a bit over-enthusiastic. After I had given an impassioned explanation of incremental design & refactoring, he paused, looked at me with those eyes, and, “I suppose that’s all very well if you don’t know how to design software.” Mic. Drop.

Update (2024-02-06): Liam Proven:

Wirth is justly celebrated as the creator of the Pascal programming language, but that was only one step in a series of important languages and research projects. Both asteroid 21655 and a law of computer design are named after him. He won computer-science boffinry’s highest possible gong, the Turing Award, in 1984, and that page has some short English-language clips from a 2018 interview.

Via John Gruber:

Wirth’s Law encapsulates Wirth’s philosophy: “The hope is that the progress in hardware will cure all software ills. However, a critical observer may observe that software manages to outgrow hardware in size and sluggishness.” Or, as he rephrased it in his paper describing Project Oberon: “In spite of great leaps forward, hardware is becoming faster more slowly than software is becoming slower.” In many ways, this remains the fundamental problem of our entire industry. It’s a truism, and can only be mitigated.

Deeje Cooley:

RIP Niklaus Wirth. In the late 1980s, I really cut my teeth as a developer on Object Pascal and the MacApp framework (using MPW), and your book “Algorithms & Data Structures” was so influential to me. I still have my copy.

NanoRaptor (via John Gruber):

Apple’s classic Pascal poster, remade as a nice clean vector image.

Bertrand Meyer (via Hacker News):

A peculiarity of my knowledge of Wirth is that unlike his actual collaborators, who are better qualified to talk about his years of full activity, I never met him during that time. I was keenly aware of his work, avidly getting hold of anything he published, but from a distance. I only got to know him personally after his retirement from ETH Zurich (not surprisingly, since I joined ETH because of that retirement). In the more than twenty years that followed I learned immeasurably from conversations with him.

[…]

Like a Renaissance man, or one of those 18-th century “philosophers” who knew no discipline boundaries, Wirth straddled many subjects. It was in particular still possible (and perhaps necessary) in his generation to pay attention to both hardware and software. Wirth is most remembered for his software work but he was also a hardware builder. The influence of his PhD supervisor, computer design pioneer and UC Berkeley professor Harry Huskey, certainly played a role.

Stirred by the discovery of a new world through two sabbaticals at Xerox PARC (Palo Alto Research Center, the mother lode of invention for many of today’s computer techniques) but unable to bring the innovative Xerox machines to Europe, Wirth developed his own modern workstations, Ceres and Lilith.

Martin Odersky (via Hacker News):

I was privileged to have worked with him as his PhD student, and to have learned a lot from him. In this note I want to write about some of the ways Niklaus influenced my work and my approach to programming.

Update (2024-02-28): See also: Simson Garfinkel and Eugene H. Spafford.

3 Comments RSS · Twitter · Mastodon

My first programming job in the 1990s was writing code for tape duplication systems using a combination of Turbo Pascal and Turbo Assembler under MS-DOS. Prior to that, I'd used Turbo Pascal for my final-year project at university, and one of the second-year modules used Modula-2 to teach structured programming. Sadly, I don't have fond memories of the other programming module I took that year that used ADA - I do recall lots of swearing, though, and if you've ever had to use ADA you'll probably know why...

Now a footnote in computing history, Apollo Computer's Domain/OS workstations were originally coded using (enhanced) Pascal, aside from the usual minimal assembler for devices.

One big reason for PASCAL's widespread adoption as a teaching language was a freely available PASCAL compiler written in PASCAL and designed for easy porting to new systems. It wasn't the most powerful language every invented, but it could be used by any school to teach simple programming, general algoriths and even compiler and language design. I remember moving it to a Prime 400 by converting the PASCAL source of the compiler into PL/I of all things.

Even back then in the 1970s and 1980s, what we would now call open source led to the widespread adoption of things like PASCAL, EMACS, UNIX and later LINUX. (UNIX had a free license for universities and researchers.)

PASCAL was also the original higher level language for the Macintosh. I worked at a company developing software for the system. We were given a single Mac prototype. I remember it had a 5" disk drive and a PASCAL development system on 5" floppy disks.

Leave a Comment