Jeff Duntemann's Contrapositive Diary Rotating Header Image

Niklaus Wirth 1934-2023

We lose our heroes one by one. By the time you’re in your 70s, like I am, you begin losing them a lot more frequently. We lost Don Lancaster back in July. Don’s books taught me how digital logic worked way back in the last half of the ‘70s. His writing was so good that I imitated it when I began to write computer articles and later books in the 1980s.

Niklaus Wirth died earlier today, in Switzerland, at 89. He was another hero, who taught me how to write computer programs that could be read. Pascal wasn’t 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’s programming language. If you’ve ever messed with FORTH, you’ll know exactly what I mean.

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 Pascal from Square One for Turbo Pascal. (The publisher retitled the book Complete Turbo Pascal for reasons I have never understood.)

I learned Pascal by cut’n’try. I learned how to write good Pascal by reading Wirth’s wonderful 1976 book Algorithms + Data Structures = Programs. My flameout with APL left me with the indelible conviction that software must be readable by the people who didn’t write it—and not after hundreds of hours of hair-tearing, either. I learned C, billed as a “high-level assembly language,” 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’s 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’t. Those days are long, long past, and I will no longer argue the point here.

I learned Wirth’s 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’s power without damaging its comprehensibility. Pascal itself has long been out of Wirth’s 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.

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 won—and won big.

Godspeed, sir. We will never forget you.

11 Comments

  1. Tom Roderick says:

    Fun you make of FORTH young Contrarian! Like you not Reverse Polish Notation?

    FORTH even makes one speak like Yoda….

    Seriously, only those who mastered the RPN HP calculators ever seemed to “get” FORTH. I know quite well the RPN calculators were enough to send me back to a Slide Rule.

    1. Tony K says:

      Taught myself Forth I did but Forth did not stick. 🙂

    2. Orvan Taurus says:

      And I use an HP48 emulator on my phone…

  2. Thank you Jeff. What a great tribute.

    Your book, “Complete Turbo Pascal”, launched my software development career. OMG, that book is so worn. I destroyed the spine from use and have held it together with clear cellophane tape.

    RIP Mr. Niklaus Wirth

  3. Jeff, your position on coding, that good coding should be understandable even to those who did not write it, has been my flag to salute for as long as I can remember. I recall a magazine which posed a monthly contest in deciphering the purpose of a few lines of C code. Arghhh.

    As an engineer, starting in the 60’s, my first coding was in FORTRAN. I did some BASIC to help my kids code their special games on a Commodore C-64. (My son is now a technical executive with Dell.)

    My own coding enterprises employed good old Turbo Pascal and then Modula 2. Alas, my academic duties became more administrative, so I did less coding and more organizing of resources.

    Without the magnificent contribution of Pascal and Modula by Niklaus Wirth, my own career and many others would have missed that clear opening of the simplicity of coding useful software by using a human-understandable syntax provided by these coding environments.

    Bon voyage, Niklaus Wirth.

  4. Olli says:

    Been wondering why the only computer language Richard Feynman was really familiar with was Basic. Why not Fortran?

    Richard Feynman and The Connection Machine
    by W. Daniel Hillis for Physics Today

    1. TRX says:

      Most of the people who used BASIC did so because it was *available.* Right there in the system ROMs or part of the operating system for most “personal” computers.

  5. Paul McEvoy says:

    It was your Turbo Pascal book that helped me, as a 43 year old, get my CS degree at UMass, Boston. There it was VAX Pascal. A few years later, it was the Coriolis books that helped me earn my MCSE and A+ certs which led to a much better job and a happy retirement, in Glendale AZ, where I now use Delphi (again, your books and magazines) maintaining a legacy baseball simulation game for a company producing sports simulation games since 1951. For old times sake, I recently bought x84 Assembly Language SbS, 4th Edition. God knows where that will take me!

  6. I’m honored that I was able to help you, and very glad you posted a success story here. One requirement we had at Coriolis is that our books MUST be written to be easily read. No exceptions. Opaque writing was bad writing in my estimation, and I was Executive VP and Editorial Director.

    Carol and I retired to NE Phoenix in 2015, and don’t regret it for a second. I’ve shoveled all the snow I intend to, though the last time I looked at my outside thermometer it was 22.8 degrees F. So far, the coldest winter here we can remember.

    Thanks for buying my new x64 book. If you get a chance, post a review on Amazon at some point. Thanks for stopping in!

  7. Vince says:

    Found out about Wirth’s passing from Jeff’s post. Wirth’s Algorithms + Data Structures = Programs was one of my prized books (bootlegged photocopy back in the day).

    Pascal was the language that made me fall in love with programming (BASIC was just puppy love). Though like many, I ended up with C/C++.

    There’s a book with his name on the title. I wonder if it’s worth reading: “The School of Niklaus Wirth: The Art of Simplicity”

  8. Neilton says:

    Niklaus Wirth are some of the giants that helped us during this long journey on high level languages. RIP.

Leave a Reply

Your email address will not be published. Required fields are marked *