{"id":41659,"date":"2024-01-04T13:42:44","date_gmt":"2024-01-04T18:42:44","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=41659"},"modified":"2024-02-28T16:29:32","modified_gmt":"2024-02-28T21:29:32","slug":"niklaus-wirth-rip","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2024\/01\/04\/niklaus-wirth-rip\/","title":{"rendered":"Niklaus Wirth, RIP"},"content":{"rendered":"<p><a href=\"https:\/\/twitter.com\/Bertrand_Meyer\/status\/1742613897675178347\">Bertrand Meyer<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=38858012\">Hacker News<\/a>, <a href=\"https:\/\/developers.slashdot.org\/story\/24\/01\/04\/0126247\/niklaus-wirth-inventor-of-pascal-dies-at-89\">Slashdot<\/a>, <a href=\"https:\/\/www.reddit.com\/r\/programming\/comments\/18xqea3\/niklaus_wirth_laureate_of_the_turing_award_and\/\">Reddit<\/a>):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/Bertrand_Meyer\/status\/1742613897675178347\">\n<p>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.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/itwire.com\/it-people-news\/people-moves\/computer-science-pioneer-niklaus-wirth-passes-away.html\">David M Williams<\/a>:<\/p>\n<blockquote cite=\"https:\/\/itwire.com\/it-people-news\/people-moves\/computer-science-pioneer-niklaus-wirth-passes-away.html\"><p>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.<\/p><p>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).<\/p><p>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.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/www.i-programmer.info\/news\/82-heritage\/16873-niklaus-wirth-inventor-of-pascal-dies-age-89.html\"> Mike James<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.i-programmer.info\/news\/82-heritage\/16873-niklaus-wirth-inventor-of-pascal-dies-age-89.html\"><p>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.<\/p><p>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.<\/p><p>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.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/JeffDean\/status\/1742784878868131884\">Jeff Dean<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/JeffDean\/status\/1742784878868131884\"><p>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.<\/p><p>I also love the anecdote when asked about how to pronounce his name:<\/p><p>&ldquo;Whereas Europeans generally pronounce my name the right way (&lsquo;Ni-klows Wirt&rsquo;), Americans invariably mangle it into &lsquo;Nick-les Worth&rsquo;. This is to say that Europeans call me by name, but Americans call me by value.&rdquo;<\/p><\/blockquote>\n\n<p>See also: <a href=\"https:\/\/vintageapple.org\/macprogramming\/pdf\/Introduction_To_Macintosh_Pascal_1985.pdf\">Introduction to Macintosh Pascal<\/a>, <a href=\"https:\/\/vintageapple.org\/macprogramming\/pdf\/An_Introduction_To_Programming_Using_Macintosh_Pascal_1988.pdf\">An Introduction to Programming Using Macintosh Pascal<\/a>.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/02\/09\/clascal-in-the-lisa-source-code\/\">Clascal in the Lisa Source Code<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/02\/02\/good-ideas-through-the-looking-glass\/\">Good Ideas, Through the Looking Glass<\/a><\/li>\n<\/ul>\n\n<p id=\"niklaus-wirth-rip-update-2024-01-05\">Update (2024-01-05): See also: <a href=\"https:\/\/twitter.com\/TheOfficialACM\/status\/1742928251859968202\">Association for Computing Machinery<\/a>, <a href=\"https:\/\/twitter.com\/ID_AA_Carmack\/status\/1742982918023381217\">John Carmack<\/a>, <a href=\"https:\/\/twitter.com\/TimSweeneyEpic\/status\/1743124327434707268\">Tim Sweeney<\/a>.<\/p>\n\n<p id=\"niklaus-wirth-rip-update-2024-01-09\">Update (2024-01-09): <a href=\"https:\/\/blog.thecodewhisperer.com\/permalink\/tdd-for-those-who-dont-know-how-to-design-software\">J. B. Rainsberger<\/a>:<\/p>\n<blockquote cite=\"https:\/\/blog.thecodewhisperer.com\/permalink\/tdd-for-those-who-dont-know-how-to-design-software\"><p>\nI&rsquo;ve been reading <a href=\"https:\/\/substack.com\/@kentbeck\">Kent Beck&rsquo;s writing on Substack<\/a> and on the occasion of the death of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Niklaus_Wirth\">Niklaus Wirth<\/a>, he shared part of a conversation he&rsquo;d had with the professor when Kent had arranged to sit next to him on the flight home from a conference they&rsquo;d both spoken at.\n<\/p><blockquote><p>Extreme Programming was just starting to crackle &amp; pop, so I&rsquo;m sure I was a bit over-enthusiastic. After I had given an impassioned explanation of incremental design &amp; refactoring, he paused, looked at me with those eyes, and, &ldquo;I suppose that&rsquo;s all very well if you don&rsquo;t know how to design software.&rdquo; Mic. Drop.\n<\/p><\/blockquote><\/blockquote>\n\n<p id=\"niklaus-wirth-rip-update-2024-02-06\">Update (2024-02-06): <a href=\"https:\/\/www.theregister.com\/2024\/01\/04\/niklaus_wirth_obituary\/\">Liam Proven<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.theregister.com\/2024\/01\/04\/niklaus_wirth_obituary\/\"><p><a href=\"https:\/\/people.inf.ethz.ch\/wirth\/\">Wirth<\/a> 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 <a href=\"https:\/\/ssd.jpl.nasa.gov\/tools\/sbdb_lookup.html#\/?sstr=21655\">asteroid 21655<\/a> and a <a href=\"https:\/\/www.techslang.com\/definition\/what-is-wirths-law\/\">law of computer design<\/a> are named after him. He won computer-science boffinry&rsquo;s highest possible gong, the Turing Award, <a href=\"https:\/\/amturing.acm.org\/award_winners\/wirth_1025774.cfm\">in 1984<\/a>, and that page has some short English-language clips from a <a href=\"https:\/\/www.youtube.com\/watch?v=SUgrS_KbSI8\">2018 interview<\/a>.<\/p><\/blockquote>\n<p>Via <a href=\"https:\/\/daringfireball.net\/linked\/2024\/01\/11\/niklaus-wirth-rip\">John Gruber<\/a>:<\/p>\n<blockquote cite=\"https:\/\/daringfireball.net\/linked\/2024\/01\/11\/niklaus-wirth-rip\">\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Wirth%27s_law\">Wirth&rsquo;s Law<\/a> encapsulates Wirth&rsquo;s philosophy: &ldquo;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.&rdquo; Or, as he rephrased it in his <a href=\"http:\/\/www.projectoberon.net\/wirth\/ProjectOberon\/PO.System.pdf\">paper describing Project Oberon<\/a>: &ldquo;In spite of great leaps forward, hardware is becoming faster more slowly than software is becoming slower.&rdquo; In many ways, this remains <em>the<\/em> fundamental problem of our entire industry. It&rsquo;s a truism, and can only be mitigated.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/mastodon.social\/@deeje\/111699614592447817\">Deeje Cooley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mastodon.social\/@deeje\/111699614592447817\">\n<p>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 &ldquo;Algorithms  &amp; Data Structures&rdquo; was so influential to me.  I still have my copy.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/bitbang.social\/@NanoRaptor\/111699576526610669\">NanoRaptor<\/a> (via <a href=\"https:\/\/daringfireball.net\/linked\/2024\/01\/11\/nanoraptor-wirth-pascal-poster\">John Gruber<\/a>):<\/p>\n<blockquote cite=\"https:\/\/bitbang.social\/@NanoRaptor\/111699576526610669\"><p>Apple&rsquo;s classic Pascal poster, remade as a nice clean vector image.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/cacm.acm.org\/blogs\/blog-cacm\/279178-niklaus-wirth-or-the-importance-of-being-simple\/fulltext\">Bertrand Meyer<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=39004526\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/cacm.acm.org\/blogs\/blog-cacm\/279178-niklaus-wirth-or-the-importance-of-being-simple\/fulltext\"><p>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.<\/p><p>[&#8230;]<\/p><p>Like a Renaissance man, or one of those 18-th century  &ldquo;philosophers&rdquo; 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.<\/p><p>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&rsquo;s computer techniques) but unable to bring the innovative Xerox machines to Europe, Wirth developed his own modern workstations, Ceres and Lilith.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/odersky.github.io\/blog\/2024-01-04-post.html\">Martin Odersky<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=38994457\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/odersky.github.io\/blog\/2024-01-04-post.html\">\n<p>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.<\/p>\n<\/blockquote>\n\n<p id=\"niklaus-wirth-rip-update-2024-02-28\">Update (2024-02-28): See also: <a href=\"https:\/\/cacm.acm.org\/magazines\/2024\/3\/280075-in-memoriam-niklaus-wirth\/fulltext\">Simson Garfinkel and Eugene H. Spafford<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>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, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2024-01-04T18:42:46Z","apple_news_api_id":"a4bb6cd3-7a2c-4df3-b05c-bd1f377ab721","apple_news_api_modified_at":"2024-02-28T21:29:35Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABA==","apple_news_api_share_url":"https:\/\/apple.news\/ApLts03osTfOwXL0fN3q3IQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[295,46,330,71,208],"class_list":["post-41659","post","type-post","status-publish","format-standard","hentry","category-technology","tag-history","tag-languagedesign","tag-pascal","tag-programming","tag-rip"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=41659"}],"version-history":[{"count":6,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41659\/revisions"}],"predecessor-version":[{"id":42270,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41659\/revisions\/42270"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=41659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=41659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=41659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}