Prof Niklaus Wirth RIP

Prof Niklaus Wirth RIP

Professor Nicklaus Wirth was a huge influence in my early career. I worked in Pacsal for several years, including for a time serving on the ISO Pascal Language Standard commitee. I never could quite get along with the limitations of Pascal implementations though, so when Prof Wirth produced Modula-2, I was more than ready to transition.

Over the next few years I produced a bunch of Modula-2 compilers, based on the ETH Zurich reference implemention (PDP-11). These included RT11, RSTS-E and RSX implementaions, as well as VAX. The RSTS-E implementation was particularly interesting for me, as it supported memory mapping to deliver a full 4MB address space for Modula-2 programs – on those PDP-11s with the necessary hardware support. I also wrote a bunch of programs in Modula-2 (for clients).

I had the inestimable pleasure to meet with Prof Wirth in Zurich a couple of times, although never knew he had an interest in R/C flight (a long time hobby of mine, too).

A Short Biography

Nicklaus Wirth (1934-2024) was a Swiss computer scientist who made significant contributions to programming languages and algorithms. He was best known as the designer of several influential programming languages, including Pascal, Modula-2, and Oberon.

Wirth studied electrical engineering at the ETH Zurich, where he received his master’s degree in 1959 and his PhD in 1963. During his studies, he became fascinated with computer programming and the development of programming languages.

In the 1960s, Wirth worked on the design of the programming language Euler. This led him to recognise the need for a new language suited for teaching programming as well as serving as the basis for real-world software development. This goal led to the creation of Pascal, which Wirth developed in the late 1960s and refined in the early 1970s.

Pascal became highly influential as a teaching language and gained widespread use in industry and academia. Its combination of simple, elegant syntax with strong data structuring capabilities made it very popular. Pascal proved enormously influential on many subsequent languages, including Modula-2, Ada, and Java.

In the 1970s, Wirth developed the programming language Modula-2 as a successor to Pascal. Modula-2 built upon Pascal’s foundations but included new features for modular programming and separate compilation. This allowed for the creation of larger, more complex software systems. Modula-2 influenced many later languages built for systems programming.

Wirth also made significant contributions to algorithm design, including the development of efficient data structures and algorithms. His 1974 paper on program development by stepwise refinement presented a structured approach to program design that proved widely influential.

In the 1980s, Wirth developed the Oberon system, which included the Oberon programming language and integrated development environment. Oberon continued Wirth’s focus on simplicity, efficiency, and modularity. The Oberon system enabled entire applications to be developed entirely within the language environment.

Wirth was recognized with many honors for his pioneering contributions to programming languages and algorithms. He received the ACM Turing Award in 1984, the IEEE Computer Pioneer Award in 2000, and the prestigious Kyoto Prize in 2014.

Wirth’s elegant and efficient programming languages had an enormous influence over the past half-century of computer science. His methodical approach to language and system design set a high standard for simplicity and clarity. Nicklaus Wirth’s contributions played a foundational role in shaping the landscape of modern software development. He passed away on January 1, 2024 at the age of 89. Though he is no longer with us, his pioneering work lives on through the many languages and systems he helped create.

Kent Beck’s Tribute

Kent Beck just posted a touching tribute to the late Prof Wirth. I reproduce it here for folks that , like myself, can’t get along with Substack. (Plus I can’t for the life of me figure out how to link to the substack article).

“I first encountered Professor Wirth remotely in my first college programming course, 203 Intro to Programming. We used Pascal as our programming language. I had been programming for 6 years by then, completely by the seat of my pants, in BASIC, FORTRAN, & 6800 assembly language.

Pascal came as a shock. There were lots of things I couldn’t do in Pascal. There was a way to express a program & you’d better get used to it. So I did.

We soon got our first Unix machine, a VAX 780. I moved on to C, then LISP & Prolog, but I always remembered the utter simplicity of Pascal.

I wasn’t aware of my second encounter with Professor Wirth. 1997-1999 our family lived in Zumikon, a village outside Zürich. On the ridge above the village was a remote control airplane landing strip. We would drive by & see the guys flying planes & helicopters.

My third encounter with Professor Wirth was the one that would change my life. Toward the end of our stay in Switzerland I was invited to speak at a conference in Nice. Professor Wirth was speaking also. Somehow I found out that we shared flights so I did something I ordinarily would never do, I approached the ticket counter & said, “My colleague Professor Wirth & I are flying together. Would it be possible for us to sit together?” “Certainly, sir.”

Then the flight was delayed 4 hours. I sat down, cracked my laptop, & started programming.

Four hours later we boarded the plane. I sat down in the middle seat next to this wizened guy with disturbingly bright eyes. He looked non-plussed as I explained what I’d pulled to get there. We soon got to talking programming, though, & conversation flowed. Turns out that when he found out about the delay, he went home & programmed. Soon we were just a couple of geeks, sitting there talking geeking.

He was one of those guys flying remote control helicopters. Except that he programmed the helicopter & the controller himself, in Oberon. That’s what he’d been doing at home—working on the flight control software.

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.

The other moment I remember was that as were approaching Nice he said, “Do you speak any French? Speak French to them. They love that.”

Lessons

Four lessons I learned from Professor Wirth:

  • First principles. He was working from a clear set of principles in all his language & programming environment work. He knew what he preferred but he wasn’t satisfied until he knew why.
  • Focus. If he knew you weren’t wasting his time he was generous. If not…
  • Personal computing. The computer was a device to expand the human mind. His take on this (check out Oberon & descendants) was different than Forth or Smalltalk, but all shared the vision of human as crafter & computer as tool (a perspective we would do well to come back to).
  • Geek for life. Professor Wirth was 70 when he was writing embedded software & he was thinking about it so intensely that he fit it even into the cracks of his life. I still have a ways to go to 70 (well, not that far), but I intend to keep geeking.

Leave a comment