{"id":5171,"date":"2024-01-04T12:39:50","date_gmt":"2024-01-04T19:39:50","guid":{"rendered":"http:\/\/www.contrapositivediary.com\/?p=5171"},"modified":"2024-01-04T12:39:50","modified_gmt":"2024-01-04T19:39:50","slug":"niklaus-wirth-1934-2023","status":"publish","type":"post","link":"http:\/\/www.contrapositivediary.com\/?p=5171","title":{"rendered":"Niklaus Wirth 1934-2023"},"content":{"rendered":"<p>We lose our heroes one by one. By the time you\u2019re in your 70s, like I am, you begin losing them a lot more frequently. We lost Don Lancaster back in July. Don\u2019s books taught me how digital logic worked way back in the last half of the \u201870s. His writing was so good that I imitated it when I began to write computer articles and later books in the 1980s.<\/p>\n<p>Niklaus Wirth died earlier today, in Switzerland, at 89. He was another hero, who taught me how to write computer programs that could be <em>read<\/em>. Pascal wasn\u2019t the first programming language I ever learned; that honor (or perhaps dishonor) falls to APL and a little later, FORTH. I wrote a text formatter in mainframe APL in 1978. It was 600 lines of squiggly jibberish. By the time I got to the bottom, I had already forgotten how the top worked. FORTH, well, the less said, the better. I think of it as Yoda\u2019s programming language. If you\u2019ve ever messed with FORTH, you\u2019ll know exactly what I mean.<\/p>\n<p>My friend Mike Bentley introduced me to Pascal in 1980 or 1981. I bought a compiler for my CP\/M machine soon after. Pascal\/MT+ was awesome, so awesome I decided to write a book about it. I was about halfway through the book when Turbo Pascal popped up above the horizon. By the time I finished the book on Pascal\/MT+, Turbo Pascal had taken over the Pascal universe, and I rewrote <em>Pascal from Square One<\/em> for Turbo Pascal. (The publisher retitled the book <em>Complete Turbo Pascal<\/em> for reasons I have never understood.)<\/p>\n<p>I learned Pascal by cut\u2019n\u2019try. I learned how to write <em>good<\/em> Pascal by reading Wirth\u2019s wonderful 1976 book <em>Algorithms + Data Structures = Programs<\/em>. My flameout with APL left me with the indelible conviction that<em> software must be readable by the people who didn\u2019t write it<\/em>\u2014and not after hundreds of hours of hair-tearing, either. I learned C, billed as a \u201chigh-level assembly language,\u201d which is a contradiction in terms. My view: Go as high as you can go, or as low as you can go. To me, that meant Pascal (or BASIC, or COBOL) on the high end, and real assembly language on the low end. C source code is needlessly obscure, and by that I only mean it could be a lot more readable if its creators chose not to be proud of its obscurity. There\u2019s actually a contest for writing the most unreadable C programs possible, which I think tells you a lot about C and its partisans. There was a time when C could do things that Pascal couldn\u2019t. Those days are long, long past, and I will no longer argue the point here.<\/p>\n<p>I learned Wirth\u2019s Modula 2 programming language when products became available in the 1980s. I read up on Modula 3 (1988) and Oberon (1987) but never coded in them. As best I can tell, they expanded Pascal\u2019s power without damaging its comprehensibility. Pascal itself has long been out of Wirth\u2019s control, and today we have tremendously powerful implementations of Pascal like Delphi and Lazarus\/FreePascal. But without Wirth, people like me would still be writing in BASIC or COBOL.<\/p>\n<p>I write this eulogy without a heavy heart. Niklaus Wirth made it to 89, and reshaped much of the software development universe in the process. To me, that means he <em>won<\/em>\u2014and won <em>big<\/em>.<\/p>\n<p>Godspeed, sir. We will never forget you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We lose our heroes one by one. By the time you\u2019re in your 70s, like I am, you begin losing them a lot more frequently. We lost Don Lancaster back in July. Don\u2019s books taught me how digital logic worked way back in the last half of the \u201870s. His writing was so good that [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5171","post","type-post","status-publish","format-standard","hentry","category-noneoftheabove"],"_links":{"self":[{"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/5171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5171"}],"version-history":[{"count":1,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/5171\/revisions"}],"predecessor-version":[{"id":5172,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/5171\/revisions\/5172"}],"wp:attachment":[{"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5171"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}