Remembering Niklaus Wirth: Father Of Pascal And Inspiration To Many

Niklaus Wirth with Personal Computer Lilith that he developed in the 1970ies. (Photo: ETH Zurich)

Although perhaps not as much of a household name as other pioneers of last century’s rapid evolution of computer hardware and the software running on them, Niklaus Wirth’s contributions puts him right along with other giants. Being a very familiar face both in his native Switzerland at the ETH Zurich university – as well as at Stanford and other locations around the world where computer history was written – Niklaus not only gave us Pascal and Modula-2, but also inspired countless other languages as well as their developers.

Sadly, Niklaus Wirth passed away on January 1st, 2024, at the age of 89. Until his death, he continued to work on the Oberon programming language, as well as its associated operating system: Oberon System and the multi-process, SMP-capable A2 (Bluebottle) operating system that runs natively on x86, X86_64 and ARM hardware. Leaving behind a legacy that stretches from the 1960s to today, it’s hard to think of any aspect of modern computing that wasn’t in some way influenced or directly improved by Niklaus.

A New ALGOL

Niklaus Wirth in 1969 (Credit: Robert M. McClure)
Niklaus Wirth in 1969 (Credit: Robert M. McClure)

Niklaus Wirth was born in 1934, got his Bachelor of Science degrees at the ETH Zurich in 1959, his Master of Science at the Université Laval in Quebec in 1960, followed in 1963 by his PhD in Electrical Engineering and Computer Science at the University of California, Berkeley. After this he worked from 1963 to 1967 as assistant professor of computer science at Stanford University.

During this time he would develop the Euler programming language together with Helmut Weber, as a generalization and extension of the then popular ALGOL 60 programming language. He’d also design PL360, a system programming language for the IBM System/360, which was the new computer system for Stanford University. His description of PL360 and the reasoning behind its design were published in volume 15, issue 1 of the Journal of the ACM (Association for Computing Machinery). In it he expresses the hope that PL360 will find use as a tutorial language and to be of interest to the designers of future computers, illustrating how his focus was less on this one IBM platform and more on the development of programming languages in general.

With ALGOL 60 becoming somewhat long in the tooth, there was a call for suggestions for the next ALGOL version, called ‘ALGOL X’ as a placeholder. In 1965 Niklaus submitted a proposal for a set of additions to ALGOL 60, which was rejected due to ‘not being ambitious enough’ for a new ALGOL version. Even so, he was invited to submit his suggestions to the ACM magazine, where it was featured in the June 1966 issue. Niklaus would develop his proposal into an extension to ALGOL 60, called ALGOL W, while his colleague Adriaan van Wijngaarden’s proposal for ALGOL X would go on to become ALGOL 68.

Despite the somewhat competitive nature, there was no bad blood between the parties involved, with the very jovial Niklaus Wirth inspiring for example Van Wijngaarden to quip at the 1965 IFIP Congress that “Whereas Europeans generally pronounce his name the right way (‘Nick-louse Veert’), Americans invariably mangle it into ‘Nickel’s Worth.’ This is to say that Europeans call him by name, but Americans call him by value.”

Pascal And Beyond

Following very much his own course, Niklaus used ALGOL W as the foundation for what ultimately would become Pascal, as named after the famous French mathematician and physicist, Blaise Pascal. First released in 1970, this programming language would go on to fulfill many of Niklaus’ wishes with PL360, in that it became an important teaching tool at schools and universities, as well as being used for programming minicomputers that were making computers ever more accessible outside of big universities and companies.

A Lilith workstation, on display at the Enter Museum, Solothurn.
A Lilith workstation, on display at the Enter Museum, Solothurn.

Pascal saw itself developed by Borland and Apple into Object Pascal, of which the Delphi dialect is probably one of the more well-known. Meanwhile Niklaus had commenced developing a new language called Modula, but after a 1976 sabbatical – during which he spent time at the Xerox PARC labs and got inspired by their Xerox Alto system and accompanying Mesa language – he abandoned Modula and created Modula-2 instead, which saw itself paired with the ETH Zurich-developed Lilith workstation, released in 1980.

This was an AMD 2900-based system, running the, fully written in Modula-2, Medos-2 operating system. From here the 1987 Ceres workstation with its ill-fated NS32000 processor followed, which saw the first use of the Oberon System. Although a Modula-3 was also released, this was not developed by Niklaus Wirth, but rather by Maurice Wilkes who got permission from Niklaus to continue with Modula since Niklaus himself was busy with the Oberon programming language, along with the operating system written in it.

A Midsummer Night’s Dream

Example of a Zooming User Interface.
Example of a Zooming User Interface.

It’s hard to really look at Niklaus Wirth’s career and get anything other than the feeling that he truly enjoyed every aspect of it, whether the challenge of creating a new, better programming language, exchanging ideas with like- and less likeminded colleagues, or increasingly the development of an operating system, experimenting with both Text-Based UIs (TUI) and Zooming UIs (ZUI). Although he noted that software in general by the late 1980s had begun to outstrip the capabilities of the hardware it ran on (referred to as Wirth’s Law), this didn’t deter him from continuing with what he felt was right.

His efforts in progressing the state of computer programming languages had been acknowledged by the ACM in 1984 when he received the Turing Award, along with a range of books such as Algorithms + Data Structures = Programs that were used extensively both in education as well as outside it. Despite languages like Pascal having only a small presence in today’s world of computer science, it’s hard to underestimate the impact that it, as well as Modula-2 and other Niklaus Wirth-designed languages have on the landscape of computer science today.

Much of what we accept as the norm today with imperative and object-oriented programming languages, whether it’s C++, Ada, Java, or any of the hundreds of other large and small languages in existence today, can trace their roots to ALGOL 60. Roots shaped and nourished by Niklaus’ efforts over the decades in making programming languages as simple and effective as they can be. Even today, universities like Oxford continue to use Oberon in their computer science classes, with Oxford even maintaining its own Oberon-2 compiler (OBC).

Where many modern programming languages have a mostly vertical learning curve, Oberon and its predecessors have the property that they are first and foremost simple and elegant, making them excellent teaching tools alongside Niklaus’ books. Although it may seem quaint to teach students to program in a language that they’re unlikely to encounter in a job, Niklaus Wirth has demonstrated throughout the years that it is not the language that matters, but rather the structures and definitions that underlie them.

Rather than developing ALGOL well into the 2000s, he instead chose to design, use and then discard one programming language after the other, dissatisfied with some aspects that he felt certain he could improve upon with the next iteration.

Preserving The Legacy

What is perhaps the biggest risk to Niklaus Wirth’s legacy is digital oblivion, especially considering the fruits of his career. Even while doing literature research on his academic past and the software projects like Oberon (the language and OS) and the A2 (Bluebottle) OS, it’s heartbreaking to see the amount of broken hyperlinks, and the defunct code repository at ETH Zurich for the latter OS. I was able to find an old mirror copy on GitHub by Bernhard Treutwein, in which a number of alternate URL are provided, including an active GitLab instance that appears to be the main repository.

Although much of the information and data does appear to be still out there, there is no good way for newcomers to learn about or get started with these last projects of Niklaus, with generally more information available on Russian-language websites, presumably due to the use of Modula-2 and kin in the Soviet Union and successor states. This fragmented state raises the risk that more and more of this extensive legacy will slowly decay, with few aware of it, and even fewer trying to preserve everything.

Here’s to Niklaus Wirth’s legacy to be preserved forever in its ever-changing, bit-perfect glory, lest it all becomes just a barely remembered Midsummer Night’s Dream.

(Top image: Niklaus Wirth with the Lilith system that he developed in the 1970s. (Photo: ETH Zurich) )

33 thoughts on “Remembering Niklaus Wirth: Father Of Pascal And Inspiration To Many

  1. Modula-2 was one of the first development environments I had on the Macintosh (128K), but it, like the C and Forth I’d also bought, depended on extensive run-time environments making them impractical for small developers to use for creating commercial software or shareware.
    Later, I used Borland’s Turbo Pascal for Mac (having upgraded to a Mac Plus), but Borland abandoned support for it, full of bugs and not supporting newer Mac OS versions (somewhere early in the System 5, IIRC).
    The one piece of software I did make a little money on eventually was a Hypercard-based genealogy deck.

  2. Wirth’s law has held truer that Moore’s.
    Also that vertical monitor is gorgeous. I wonder what in the late 1970s inspired him to name it “Lilith.” Probably was having a lot of fun.

    1. “Lilith schmuckt sich mit allerlei Zierat, wie eine buhlerische Frau. Sie steht am Anfang der Weg und Pfade, um Manner zu verfuhren. Den Toren der sich ihr nahter, kusst sie und giesst ihm Wein ein mit Schlangengift.”

      “Lilith adorns herself with all sorts of ornaments, like a courting woman. She is at the beginning of the way and paths to seduce men. She kisses the fool that approach her and pours him wine with snake venom.” (google+jan, das ist ziemlich altes Deutsch)

      Zitat aus S 34, https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/69801/eth-3139-01.pdf?sequence=1&isAllowed=y

  3. The article neglects to mention Lazarus.
    The open source version of Delphi. The object oriented Pascal RAD environment.
    Compiles for Windows, Linux, Mac.
    It will even import your old Delphi application, with a reasonable level of ease.
    I intend to teach my children to program using Lazarus, Pascal is a good start.

    1. Pascal was ‘the’ language during my college days. Continue on with Turbo Pascal, up through Object Pascal, Delphi at work. Now cross platform Lazarus gives me similar environment as Delphi, so Pascal just goes on :) at home. Yes, I now use a lot of Python, but still use Pascal. Plus there is ultibo even for the RPIs for fun… https://ultibo.org/

      Sorry to hear of Wirth’s passing, but so goes all of us at some point in time. 89 is a ripe old age for humans.

      1. +1

        Turbo Pascal really defined Pascal, I think. It fixed many shortcoming of normal Pascal.

        “89 is a ripe old age for humans.”
        Not for politicians. They start their career at 60/70.

        Seriously though, ~90 is an advanced age for men today, at least.
        But not so long ago, people died age 30 and may did look like 90, as well.

        To my understanding, researchers currently think there’s no definite upper limit for human age that’s set in stone. So maybe there’s hope. I’m an hopeless optimist.

        With a better type of lifestyle, healthcare and medicine, 120 years as “the new 90s” might be not too unrealistic, maybe.

        Maybe if the environment we live in changes for the better, also. Less free radicals, ozone and UV radiation etc.

        In some regions, like Asia, Japan etc. people usually reach a higher age.
        Nutrition maybe plays a role here, too. Or genetics. I’m just a layman here.

        Anyway, I didn’t mean to go OT or start a big discussion.
        I think I understand what you meant to express and won’t disagree per se. I just found it a bit depressing sounding, because these things (fate etc) are rather individual. So many factors..

      2. Yeah I really enjoyed work/play during that time. For a programmer it was heady stuff. It seemed there was always something new, something faster, something better on the Horizon.

        Just with the Borland products there was ‘excitement’ every year… Turbo Pascal on my DEC Rainbow started it off for me, then on DOS Machines Turbo Pascal 3.0, 4.0 … 7.0… Delphi, Turbo C, Borland C/C++, Turbo Prolog, etc… Even a Java development system…. We stayed away from M$ products during that time as we felt it wasn’t necessary.

        In OSs we had DOS, Windows 3.11, … etc. OS/2, Coherent (Unix clone), and finally Linux the ultimate OS (to date) to surface (IMO) ;) ….

        Job wise I also worked with real-time systems such as VRTX, OS-9, Wind River products, Linux Real-time for our SCADA RTU products….

        I must say these were fun years for a developer. Got to do a lot of different things and wear many hats.

  4. My favorite story involves the way people pronounced his name: being Swiss, the native pronunciation is NIK-louse (rhymes with house) VIRT. Americans, however, tended to read it as NICK-els WORTH.

    He referred to that as “call by name versus call by value”.

  5. I think the date of birth is wrong in the article.
    I’ve followed the Wirth languages since the late 70s, and have actually programmed in Oberon for real products, due to it’s very small compiled size. I’ve run A2, as well, but it stopped being bootable for me a few years back. I’m going to have another go soon though, now that gitlab repository has appeared. There’s also the FPGA implemented These languages are jewels in a sea (probably not including C, ironically) of committee designed whales.
    If you want to understand a computer completely, have a look at this:
    https://www.projectoberon.net/
    hardware and software. I have an FPGA on a PCB that someone implemented from these filesomewhere, that will have to be retrieved as well.

    1. Wait, autotrax if I remember correctly was also written in Pascal. Never used Altium, while I had a lot of fun and many designs with autotrax, I never used the latter, I hope it is not based on the former…

    2. They rewrote it in C# some years ago, starting from release 18 or 20, i don’t remember exactly… and it just went from bad to cursed in terms of speed and responsiveness (object selection, DRC and polygon pours above all…)

  6. My first programming gig was maintaining some software written in Delphi… I was still in school at the time… I loved Pascal, even though I had to learn it specifically for this job. Had been a BASIC b**ch before :-D

  7. His book “Algorithms + Data Structures = Programs” was one of three books everyone should have read back in the 1980’s. Trying to recall the other two… “Structured Programming” By Dijksta and Hoare, and Dijkstra “Selected Writings”. And anyone who had studied the first three volumes of Knuth’s “Art of Computer Programing” had a leg up on the competition and was available from 1973 to the present.

  8. First of all, fuck you 2024, good start.
    “Algorithms + Data Structures = Programs” is one of my favorite books, I have it in Polish and English.
    Pascal was my favorite language from 7th grade (started with Turbo Pascal 5.5) till 2nd year at university.

  9. > risk to Niklaus Wirth’s legacy is digital oblivion

    Very unlikely, since it’s all published in books and papers.

    > and the A2 (Bluebottle) OS

    Neither the A2 OS, nor the language it is written in (a successor of Active Oberon), are by Wirth. Wirth was mostly involved in Oberon V1 and V2, and a little bit in V4, but since his retirement mostly in http://www.projectoberon.net/ and the Oberon-07 language version, which has little in common with both Oberon System 3 nor later versions (such as AOS/Bluebottle or A2).

    > It’s heartbreaking to see the amount of broken hyperlinks [..] at ETH Zurich

    That’s indeed very unfortunate. But there are good alternatives, e.g. https://github.com/rochus-keller/Oberon or https://github.com/rochus-keller/OberonSystem3

  10. Pascal was the first language I learnt at the university, along with cobol & assembly.
    We learned the Pascal language mainly because it required strong discipline in structuring programs correctly.

    I mostly used cobol during the first yearsI as a professional but eventualy used Pascal in the late 90’s to write api’s for a Visual Basic medical application. I still regret not having used Pascal for the complete development, but VB was a sort of quick and practical stopgap at that time.

    BTW I still have a working Apple ][ with a “Language Card” for Pascal!

  11. The GNU Modula-2 add-on to gcc is now available as of gcc v12. Just two weeks ago, I successfully compiled and ran a crossword puzzle generation program I had written back in the ’80’s. Gaius Mulley and everyone else who has worked on it has done a fantastic job. Thanks Gaius!

  12. 1980s calling. Working in finance, but not IT, I always took a DIY approach to making tools. Turbo Pascal was the first language that let me get real work done and kept me from spending my life in the spreadsheet ghetto. On my own time I played with the Amiga and Modula2 was my language of choice when the rest were using C. This was back when the future was not yet decided.

  13. Pascal,especially Turbo Pascal was my favorite language for over a decade. Self-documenting if properly written, extensible by assembly language calls, good graphics support – it had a lot going for it. When I needed to write code for submission with or to generate data for projects to complete my degree, the question wasn’t could the language do it, but rather could I write the code to do it. Dr.Wirth left big footprints!

  14. Thank you for the article.!

    Wirth’s books and languages were used in most of my beginner programming classes. I still have them in hardbound format.

    MS Pascal was the only Microsoft product I used, aside from MS DOS, until around 1995. Before that was the Apple }{+ (still prefer it for my games). Took the OS/2 2.1 path until 4.0 pretty much died. Linux was another mainstay during that time as it evolved. Finally took a job using Microsoft BASIC after that. I stopped counting languages after I had learned about 50 of them. Wirth had a big influence on most of it and helped me teach others the craft when they were just starting out in the 90s.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.