Faculty Memories of Niklaus Wirth
Turing Award winner, computer pioneer, and inventor of influential programming languages, Niklaus Wirth’s achievements in the field of computer science are far-reaching. To this day, his contributions have had a decisive influence on computer science and have inspired generations of programmers.
The following memories and tributes from current and former D-INFK faculty provide a glimpse into the significant impact left by Niklaus Wirth.
You can find more memories from former team members, colleagues and students here.
11 January 2024
Zhendong Su, Professor D-INFK
Niklaus was from the first generation of computer science pioneers who made long-lasting contributions to and impacts on the field. His contributions are well-known and celebrated, so I will not repeat them in detail. Like many other people, I learned programming from Niklaus' Pascal programming language. And for someone who also works in programming languages and software engineering, Niklaus had always been one of my big heroes for his innovative and cleanly designed programming languages, and for his focus on clean(er) and simple(r) designs.
After moving to ETH, I had always wanted to meet Niklaus and get to know him as a person. I could not be more excited to notice him in the audience of my colleague, Niao He, and my inaugural lectures in late 2022 - such an honor and unexpected first meeting with him like this! Over the past year, I got to know and interact with him on several occasions. Niklaus still had a sharp and very curious mind. For example, unsatisfied with only getting layman's introductions to quantum computing and quantum computers from the popular press, he wanted to speak with local experts at ETH about the topic - which he did!
At this point, to me, he was not only a hero anymore, but also a friend and fatherly figure. I had been looking forward to the department's planned special event celebrating Niklaus' 90th and Walter's 80th birthdays in March 2024, as well as more personal interactions with him in the years to come. Now, with much regret and sadness, this would no longer be possible. The passing of Niklaus is a huge loss for our field, and what a life and career to be celebrated!
Juraj Hromkovic, Professor D-INFK
In my conversations with Niklaus Wirth, he always emphasised that he had developed Pascal as THE LANGUAGE for teaching programming. The whole of Eastern Europe raved about Pascal as a teaching language for 30 years and even today the opinion still holds that Pascal and its successors are the best teaching language.
I am glad to share some immediate reactions from the Eastern European education community following the announcement of Niklaus Wirth's death:
"To me he was a personal hero. I got to learn programming mostly with Pascal (in the Turbo Pascal variant by Borland), and it was a great programming language to learn clean programming with. It wasn't as efficient as C (and its variants), but for me as a mostly self-taught school boy this was a cool tool and probably the best choice back then. Maybe the world would be well-off to consider what's today known as Wirth's law: externe Seite "software is getting slower more rapidly than hardware is becoming faster". Niklaus Wirth is a person to remember well, and maybe his strive for good education can be a boost to our energy to achieve our common goal in spreading competencies with relation to computer science." Maciej M. Sysło
"Since 1980 for almost 30 years, Pascal was the main programming language we used in our school textbooks and in teaching informatics in schools and universities. Even more important, Niklaus Wirth was the first author of a book on Algorithmics AND Programming (Algorithms+Data Structures = Programs, 1976)." Christian Datzko
"I believe his project externe Seite Oberon is a fantastic educational resource, similar to the more popular "From NAND to Tetris", but in fact much more deep. It also made me think a lot about a controversial approach common to many great scientists of his generation (Knuth, Dijkstra, even Papert in a sense): they fundamentally put forward the idea of computer science as a "one mind show". This is very appealing to some (me included) who see CS as a means of expressing themselves without depending too much on society and its constraints, but it also has the potential of isolation and exclusion. In fact, today computer science is much more than just an intellectual adventure for individuals and we should find a way to make its ecological/economic facet shine more, without hiding the pleasure of its intellectual achievements. I believe this is the challenge left to us for the next decades of computer science education!" Mattia Monga
"For me, Professor Niklaus Wirth was the most important person for teaching programming. We made a Pascal compiler for big machines in 1978 by following Wirth’s manuscript that we got from somewhere in Moscow. We established Pascal teaching methodology for schools in Lithuania (resisted Basic which was more promoted in Russia). We established Young Programmers school by correspondence in 1976 and taught programming using Pascal by sending regular mails. I wrote many textbooks for schools in Pascal." Valentina Dagienė
"His book “Algorithm + Data Structures = Programs” was a bible for generations of computer scientists." Vipul
Friedemann Mattern, Professor Emeritus D-INFK
I first learned about Niklaus Wirth when I was a student of computer science, where I experienced him as an author of really inspiring textbooks. I still remember buying his two books “Algorithms + Data Structures = Programs” and “Systematisches Programmieren” in the well-stocked university bookstore on a hot day in August 1978. Not only did I work through them thoroughly (as the many pencil notes still bear witness to today), but I actually read them with great interest and pleasure! You could literally feel the author's in-depth experience and engineering skills while reading. I later also acquired books by him on Pascal and compiler construction – as part of my diploma thesis in the early 1980s I modified, together with two fellow students, the Pascal compiler developed by Wirth; we implemented a new method for handling syntax errors.
During my doctorate, I was several times able to experience Niklaus Wirth giving a public talk – one could observe, however, that his unshakable belief in puritanical and minimalist software solutions was not always met with approval by the audience at a time when computer resources were increasing exponentially! When I became a professor at ETH in 1999, just at the time when Niklaus Wirth retired, the spirit of Wirth's frugality was still clearly noticeable in the Computer Science Department: The professorships' budgets were rather tight - because it was felt that you don't need too much money...
Actually, I gave my first introductory computer science lecture a few years earlier, in 1991. Then, I benefited much from Niklaus Wirth's textbooks. I remember, for example, his elegant solution to the eight queens problem, a classic in programming education about recursion and backtracking. In 2020, when I last gave an introductory lecture at ETH, this basically unchanged program - I had only transferred it to C++ and then to Java over the years - was still part of my lecture! Good ideas hardly age.
Niklaus Wirth had actually published this programming example (“in a slightly augmented Algol 60 notation”) in 1971 already - in the “Communications of the ACM” under the title “Program development by stepwise refinement”. Wirth had worked out this development method in discussions with his colleagues C.A.R. Hoare and E. W. Dijkstra. The first sentence of his paper reads “Programming is usually taught by examples” – the example chosen was then the eight queens problem. However, already as early as 1850, the famous mathematician Carl Friedrich Gauss discovered the principle of the algorithmic solution, describing backtracking as “planmässiges Tatonnieren” (systematic trial and error). We know about this from an exchange of letters with his colleague, the astronomer and geodesist H. C. Schumacher. On September 24, 1850, Schumacher politely thanked Gauss: “Accept, my dearest friend, my deepest thanks for the information about the eight dames.”
The seemingly playful eight queens problem also had a sequel in theoretical computer science: Gauss eventually found carrying out the manual backtracking process too laborious – “you have to know when to stop,” he wrote. (Incidentally, Wirth commented that this solution principle requires “large amounts of exacting labor, patience, and accuracy. Such algorithms have therefore gained relevance almost exclusively through the automatic computer, which possesses these properties to a much higher degree than people, and even geniuses, do.”) However, Gauss did not find any other, more efficient solution. Over the course of the following decades, a suspicion dawned on some mathematicians, initially expressed hesitantly (“the problem does not seem to be entirely solvable without trying”) and made explicit by Kurt Gödel in the mid-1950s as a question to John von Neumann (“how strongly in general the number of steps in finite combinatorial problems can be reduced with respect to just trying [i.e., simple exhaustive search]”). In the 1960s, this ultimately led to the formulation of the P-NP problem and the foundation of complexity theory. It therefore appears that the eight queens problem (but also many other practically important combinatorial problems) cannot be solved more efficiently than was envisioned by Gauss and programmed in an elegant recursive style by Niklaus Wirth in 1971 already.
Walter Gander, Professor Emeritus D-INFK
Dear Niklaus,
You have left this world. However, you left deep traces behind. Were you a good professor in D-INFK from the perspective of the Schulleitung?
Let's look at three criteria:
- Strengthening international cooperation
This is a disaster, as you left the IFIP ALGOL committee "under flaming protest", as Friedrich Ludwig Bauer wrote, to develop your own programming language PASCAL. - Third-party funding
You did not jet around to write funding proposals with foreign colleagues. On the contrary, you stayed at ETH, never missed a class, and did not even use up your regular budget. - Public-private partnership
You did not really care, although some promising approaches have taken place. You were just too far ahead of your time.
Although you did not meet criteria set by our science politicians for assessing the quality of professors, you will still be seen in history as a great professor and outstanding scientist. There is no computer science department in the world that does not know the name Niklaus Wirth.
Gaston Gonnet, Professor Emeritus D-INFK
This is very sad news. It touches me very closely as Klaus was instrumental in my moving to Switzerland. He went to Waterloo to recruit me. He then invited us to Zurich and gave me a very warm welcome (at a time when we were only two non-German speaking professors). We became good friends and when he retired, he moved to one of my offices in the IFW building.
Besides the many outstanding academic merits that have been pointed out, I also consider him the main architect of the quality of D-INFK as he actively participated in the hiring of excellent colleagues. He was always a guardian of high standards and able to separate the substance from the fluff. When we are proud to be highly ranked by some organizations, as we are, we should take a second to thank Klaus for his efforts. A big toast for the achievements of this great person/colleague/friend!
Jürg Gutknecht, Professor Emeritus D-INFK
"To hell with AI." This response to a journalist's question to Niklaus Wirth about his assessment of "Artificial Intelligence" evokes memories of a famous exclamation by Albert Einstein, who expressed his skepticism towards quantum theory with the words "God does not play dice." In both cases, the rejection of a fundamentally new direction in science contrasts with one's own epoch-making achievements in that same field.
Niklaus Wirth, alongside Edsger W. Dijkstra and C.A.R. Hoare, was one of the three pioneers who significantly shaped the emerging science of Computer Science in the last century. All three were honored with the Turing Award, the highest scientific distinction in computer science, named after the pioneer Alan Turing. In contrast to the theorists Dijkstra and Hoare, the engineering component always played a substantial role in Wirth's research. The proverbial "School of Wirth" was particularly characterised by a minimalist approach to theory and formalism, justifying themselves through utility in constructive application. As long as they served the purpose, even the most abstract mathematical principles were dear to him, such as predicate calculus as a methodical foundation for generating provably error-free programs. Wirth's sense of the essential and, closely connected, his appreciation for simplicity and lack of embellishment were legendary. Throughout our long collaboration, I have always admired the ultimately elegant, sometimes brilliant simplicity in Wirth's programmes. Opacity was abhorrent to him, and he often dismissed modern software development environment tools and automations with the biting Dijkstra quote, "how to programme if you can't."
When I entered the field of programming at Swissair in 1968, where I soon found myself in the system programming of IBM 360 mainframes, I already knew the name Wirth and had encountered him in person with awe. I was aware of his tremendous success with the programming language Pascal and its groundbreaking, rigorously enforced type system for early detection of programming errors that tried to compare apples to oranges. However, at that time, I saw no connection between his programming language and my meticulous activities with bits and bytes at the machine language level. It was only a good decade later, after completing my doctorate in mathematics, that I wanted to know more and successfully applied for a position I came across by chance. In this position, Niklaus Wirth was looking for employees for his newly started project at ETH Zurich to develop "personal" next-generation workstation computers. My skepticism towards "higher" programming languages for system-level tasks quickly disappeared, and I soon realised that abstractions like the one in the language Modula-2, Pascal's successor, are excellently suited for such tasks. The ultimately convincing argument was the successful realisation of Wirth's radical vision: formulating the entire software for the new workstation computer "Lilith", including the user interface, operating system, and Modula-2 compiler in the Modula-2 language itself. This became possible through the sophisticated methodology of using an intermediate code, already known from the Pascal era.
The next and final step in my collaboration with Wirth involved the flexibilisation of the rigid Modula-2 type system in the form of a dynamic, open-ended type hierarchy. This allowed for ongoing system extensions without sacrificing "strong typing" and the associated early detection of programming errors. This evolution led to the programming language Oberon, marking a profitable move towards "object-oriented programming," which Wirth found "too pompous" in its entirety. Once again, the language was used as a means to an end, namely, the development of a new, even more compact personal workstation named "Ceres," based on the next generation of hardware components. In the international arena, both programming languages, Modula-2 and Oberon, gained popularity in the commercial sector due to their minimalist structure and complete open-source availability, leading many startup ventures to success. The rigorous verification of correct data type usage at compile-time proved especially beneficial for safety-critical projects.
Wirth's virtues of simplicity, clarity, transparency, minimalism, and resource efficiency are cross-cutting competencies and have set a precedent. They have shaped entire generations of computer science students and produced professionals who today hold influential positions in Switzerland and abroad, especially in the iconic Silicon Valley, and who in turn carry on and spread the Wirth spirit. However, the discipline of programming based on predicate logic principles has now given way to a culture of "Software Engineering," which, thanks to "smart" frameworks, packages, and various virtual assistants and AI bots, has substantially lowered the required skills and, consequently, the entry barrier into software development. This has had the positive consequence of opening doors for an explosively expanded population of software developers in an equally expanding world of application areas. However, it also comes with the negative consequence that the high quality of programming according to Wirth's standards has largely been sacrificed. The proof of the latter is ubiquitous, simplistic error messages like "An error occurred. Please try again," signaling the developers' surrender, endlessly spinning activities during connection attempts or entire releases whose only innovation lies in correcting previous programming errors. In reminiscence of the good old Wirthian times, a certain nostalgia is inevitably evoked.
Speaking of nostalgia: In particularly fond memory of Niklaus Wirth, besides his scientific side, his sociable nature has stayed with me: Countless long evenings in the cozy atmosphere of his former country estate, in the company of his wife, Diana and inspiring discussions about God, the world, science, and programming, always resulting in the conviction that we knew everything better.