{"id":59710,"date":"2024-01-05T13:00:46","date_gmt":"2024-01-05T18:00:46","guid":{"rendered":"http:\/\/pappp.net\/?guid=93c86c8c12bdb46d71b6ecd5f16a2094"},"modified":"2024-01-05T13:00:46","modified_gmt":"2024-01-05T18:00:46","slug":"remembering-niklaus-wirth-father-of-pascal-and-inspiration-to-many","status":"publish","type":"post","link":"https:\/\/pappp.net\/?p=59710","title":{"rendered":"Remembering Niklaus Wirth: Father Of Pascal And Inspiration To Many"},"content":{"rendered":"<p class=\"syndicated-attribution\">Source: <a href=\"https:\/\/hackaday.com\/2024\/01\/05\/remembering-niklaus-wirth-father-of-pascal-and-inspiration-to-many\/\">Hack a Day<\/a><\/p>\n<div style=\"background-color : #fff7d5;\n\t\t\tborder-width : 1px; padding : 5px; border-style : dashed; border-color : #e7d796;margin-bottom : 1em; color : #9a8c59;\">Article note: Maybe a decade ago I was musing with some colleagues about how computing was interesting as a field because there was basically only one or two generation of the computing field who had passed away, so there is almost nothing not in living memory (and yet we still ignore our own history for the most part). That is rapidly and tragically becoming less true. \n \n(Clarifying: There were the precursor folks like Pascal, Boole, and Babbage scatted way back, and people like Vannevar Bush and John von Neumann who raised the people who made computers realizable, then the first generation with reliable computers like Mauchly, Eckert, Aiken, Shanon, Turning, and Zuse who mostly passed away in 1995+\/-10.  Everyone else was kind of still around at the time).<\/div><div><img src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg?w=782\" alt=\"Niklaus Wirth with Personal Computer Lilith that he developed in the 1970ies. (Photo: ETH Zurich)\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg 782w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg?resize=250,125 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg?resize=400,199 400w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg 782w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg?resize=250,125 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/niklaus_wirth.jpg?resize=400,199 400w\" sizes=\"(max-width: 782px) 100vw, 782px\" referrerpolicy=\"no-referrer\"\/><\/div><p>Although perhaps not as much of a household name as other pioneers of last century&rsquo;s rapid evolution of computer hardware and the software running on them, Niklaus Wirth&rsquo;s contributions puts him right along with other giants. Being a very familiar familiar face both in his native Switzerland at the ETH Zurich university &ndash; as well as at Stanford and other locations around the world where computer history was written &ndash; Niklaus not only gave us Pascal and Modula-2, but also inspired countless other languages as well as their developers.<\/p>\n<p>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&rsquo;s hard to think of any aspect of modern computing that wasn&rsquo;t in some way influenced or directly improved by Niklaus.<\/p>\n<p><span><\/span><\/p>\n<h2>A New ALGOL<\/h2>\n<figure aria-describedby=\"caption-attachment-654819\"><a href=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?w=292\" alt=\"Niklaus Wirth in 1969 (Credit: Robert M. McClure)\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg 474w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=183,250 183w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=292,400 292w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=456,625 456w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg 474w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=183,250 183w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=292,400 292w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Niklaus_Wirth_large.jpg?resize=456,625 456w\" sizes=\"(max-width: 292px) 100vw, 292px\" referrerpolicy=\"no-referrer\" loading=\"lazy\"\/><\/a><figcaption>Niklaus Wirth in 1969 (Credit: Robert M. McClure)<\/figcaption><\/figure>\n<p>Niklaus Wirth was born in 1938, got his Bachelor of Science degrees at the <a href=\"https:\/\/en.wikipedia.org\/wiki\/ETH_Zurich?useskin=vector\"  rel=\"noopener noreferrer\">ETH Zurich<\/a> in 1959, his Master of Science at the Universit&eacute; 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.<\/p>\n<p>During this time he would develop the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Euler_(programming_language)?useskin=vector\"  rel=\"noopener noreferrer\">Euler<\/a> programming language together with Helmut Weber, as a generalization and extension of the then popular ALGOL 60 programming language. He&rsquo;d also design <a href=\"https:\/\/en.wikipedia.org\/wiki\/PL360?useskin=vector\"  rel=\"noopener noreferrer\">PL360<\/a>, 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 <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/321439.321442\"  rel=\"noopener noreferrer\">were published<\/a> 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.<\/p>\n<p>With ALGOL 60 becoming somewhat long in the tooth, there was a call for suggestions for the next ALGOL version, called &lsquo;ALGOL X&rsquo; as a placeholder. In 1965 Niklaus submitted a proposal for a set of additions to ALGOL 60, which was rejected due to &lsquo;not being ambitious enough&rsquo; for a new ALGOL version. Even so, he was invited to submit his suggestions to the ACM magazine, where <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/365696.365702\"  rel=\"noopener noreferrer\">it was featured<\/a> in the June 1966 issue. Niklaus would develop his proposal into an extension to ALGOL 60, called <a href=\"https:\/\/en.wikipedia.org\/wiki\/ALGOL_W?useskin=vector\"  rel=\"noopener noreferrer\">ALGOL W<\/a>, while his colleague Adriaan van Wijngaarden&rsquo;s proposal for ALGOL X would go on to become ALGOL 68.<\/p>\n<p>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 <a href=\"https:\/\/lists.racket-lang.org\/users\/archive\/2014-July\/063519.html\"  rel=\"noopener noreferrer\">quip<\/a> at the 1965 IFIP Congress that &ldquo;Whereas Europeans generally pronounce his name the right way (&lsquo;Nick-louse Veert&rsquo;), Americans invariably mangle it into &lsquo;Nickel&rsquo;s Worth.&rsquo; This is to say that Europeans call him by name, but Americans call him by value.&rdquo;<\/p>\n<h2>Pascal And Beyond<\/h2>\n<p>Following very much his own course, Niklaus used ALGOL W as the foundation for what ultimately would become <a href=\"https:\/\/en.wikipedia.org\/wiki\/Pascal_(programming_language)?useskin=vector\"  rel=\"noopener noreferrer\">Pascal<\/a>, 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&rsquo; 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.<\/p>\n<figure aria-describedby=\"caption-attachment-654824\"><a href=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?w=358\" alt=\"A Lilith workstation, on display at the Enter Museum, Solothurn.\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg 917w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=224,250 224w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=358,400 358w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=560,625 560w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg 917w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=224,250 224w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=358,400 358w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/Lilith-enter-museum.jpg?resize=560,625 560w\" sizes=\"(max-width: 358px) 100vw, 358px\" referrerpolicy=\"no-referrer\" loading=\"lazy\"\/><\/a><figcaption>A Lilith workstation, on display at the Enter Museum, Solothurn.<\/figcaption><\/figure>\n<p>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 &ndash; during which he spent time at the Xerox PARC labs and got inspired by their Xerox Alto system and accompanying Mesa language &ndash; he abandoned Modula and created <a href=\"https:\/\/en.wikipedia.org\/wiki\/Modula-2?useskin=vector\"  rel=\"noopener noreferrer\">Modula-2<\/a> instead, which saw itself paired with the ETH Zurich-developed <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lilith_(computer)?useskin=vector\"  rel=\"noopener noreferrer\">Lilith<\/a> workstation, released in 1980.<\/p>\n<p>This was an <a href=\"https:\/\/en.wikipedia.org\/wiki\/AMD_Am2900?useskin=vector\"  rel=\"noopener noreferrer\">AMD 2900<\/a>-based system, running the, fully written in Modula-2, Medos-2 operating system. From here the 1987 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Ceres_(workstation)?useskin=vector\"  rel=\"noopener noreferrer\">Ceres<\/a> workstation with its ill-fated <a href=\"https:\/\/en.wikipedia.org\/wiki\/NS32000?useskin=vector\"  rel=\"noopener noreferrer\">NS32000<\/a> processor followed, which saw the first use of the Oberon System. Although a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Modula-3?useskin=vector\"  rel=\"noopener noreferrer\">Modula-3<\/a> 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 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Oberon_(programming_language)?useskin=vector\"  rel=\"noopener noreferrer\">Oberon<\/a> programming language, along with the operating system written in it.<\/p>\n<h2>A Midsummer Night&rsquo;s Dream<\/h2>\n<figure aria-describedby=\"caption-attachment-654836\"><a href=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png?w=400\" alt=\"Example of a Zooming User Interface.\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png 776w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png?resize=250,106 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png?resize=400,169 400w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png 776w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png?resize=250,106 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2024\/01\/ZUI_example.png?resize=400,169 400w\" sizes=\"(max-width: 400px) 100vw, 400px\" referrerpolicy=\"no-referrer\"\/><\/a><figcaption>Example of a Zooming User Interface.<\/figcaption><\/figure>\n<p>It&rsquo;s hard to really look at Niklaus Wirth&rsquo;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 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Text-based_user_interface?useskin=vector#Oberon\"  rel=\"noopener noreferrer\">TUI<\/a>) and Zooming UIs (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Zooming_user_interface?useskin=vector\"  rel=\"noopener noreferrer\">ZUI<\/a>). 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 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Wirth%27s_law?useskin=vector\"  rel=\"noopener noreferrer\">Wirth&rsquo;s Law<\/a>), this didn&rsquo;t deter him from continuing with what he felt was right.<\/p>\n<p>His efforts in progressing the state of computer programming languages had been acknowledged by the ACM in 1984 when he received the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Turing_Award?useskin=vector\"  rel=\"noopener noreferrer\">Turing Award<\/a>, along with a range of books such as <a href=\"https:\/\/en.wikipedia.org\/wiki\/Algorithms_%2B_Data_Structures_%3D_Programs?useskin=vector\"  rel=\"noopener noreferrer\"><em>Algorithms + Data Structures = Programs<\/em><\/a> that were used extensively both in education as well as outside it. Despite languages like Pascal having only a small presence in today&rsquo;s world of computer science, it&rsquo;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.<\/p>\n<p>Much of what we accept as the norm today with imperative and object-oriented programming languages, whether it&rsquo;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&rsquo; 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 (<a href=\"https:\/\/spivey.oriel.ox.ac.uk\/corner\/Oxford_Oberon-2_compiler\"  rel=\"noopener noreferrer\">OBC<\/a>).<\/p>\n<p>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&rsquo; books. Although it may seem quaint to teach students to program in a language that they&rsquo;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.<\/p>\n<p>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.<\/p>\n<h2>Preserving The Legacy<\/h2>\n<p>What is perhaps the biggest risk to Niklaus Wirth&rsquo;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 <a href=\"https:\/\/en.wikipedia.org\/wiki\/A2_(operating_system)?useskin=vector\"  rel=\"noopener noreferrer\">A2 (Bluebottle)<\/a> OS, it&rsquo;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 <a href=\"https:\/\/github.com\/btreut\/a2\"  rel=\"noopener noreferrer\">old mirror copy<\/a> on GitHub by Bernhard Treutwein, in which a number of alternate URL are provided, including an <a href=\"https:\/\/gitlab.inf.ethz.ch\/felixf\/oberon\"  rel=\"noopener noreferrer\">active GitLab instance<\/a> that appears to be the main repository.<\/p>\n<p>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.<\/p>\n<p>Here&rsquo;s to Niklaus Wirth&rsquo;s legacy to be preserved forever in its ever-changing, bit-perfect glory, lest it all becomes just a barely remembered Midsummer Night&rsquo;s Dream.<\/p>\n<p>(Top image: Niklaus Wirth with the Lilith system that he developed in the 1970s. (Photo: ETH Zurich) )<\/p>","protected":false},"excerpt":{"rendered":"<p>Although perhaps not as much of a household name as other pioneers of last century\u2019s rapid evo&#8230;<\/p>\n<p> <a href=\"https:\/\/pappp.net\/?p=59710\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[226],"tags":[],"class_list":["post-59710","post","type-post","status-publish","format-standard","hentry","category-news-2"],"_links":{"self":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/59710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59710"}],"version-history":[{"count":0,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/59710\/revisions"}],"wp:attachment":[{"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}