Saturday, January 06, 2024

Nicklaus Wirth, RIP

News travels slowly, so it was only today that I learnt that Nicklaus Wirth died on New Year's Day, six weeks before his 90th birthday. Wirth is a venerated person in my computer hall of fame as it was he who invented and defined the Pascal programming language in 1970. I get the feeling that I've never written about how I started programming and about how huge my debt is to Wirth. He was a professor at ETH, Zurich Switzerland and a more formal obituary can be found here.

But first a joke (attributed to Wirth): Whereas Europeans generally pronounce my name the right way ('Nick-louse Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say that Europeans call me by name, but Americans call me by value. The punchline is similar to that about Lisp programmers who know the value of everything and the cost of nothing

I probably have related that my first meeting with the computer was at the end of 1982: a terminal (a line printer with a keyboard) that was connected via a dedicated phone line to a jointly owned PDP-11 at a location about 20 km away from where I lived. This was a match made in heaven as I found the ideas of programming very conducive to my way of thinking. At first I learnt how to program in BASIC, as this was the system language of the PDP, but after having written a program to play bridge whose listing was longer/taller than me, I looked for something better. Apart from anything else, the lack of an ability to pass parameters to a subroutine made that bridge program much more complicated than it need be.

I discovered in a book shop in Rehovot a modest book about programming in Pascal and simultaneously discovered that the PDP had a Pascal compiler - OMSI Pascal. I printed out the documentation and read it religiously, not really understanding all of it but knowing that one day it would make sense. And indeed, one day I wrote some simple program that compiled successfully ... and I was off. I did a great deal of Pascal programming on the PDP, writing what would become database programs but without the luxury of a database manager. These used what might be called linked list data files - probably very slow as they involved random access into a data file, but probably faster than starting at the beginning of the file and traversing it sequentially, looking for a specific record.

In the mid-1980s, I had a series of discussions with a kibbutz member who was a teacher at the local school and became a close friend. As a result of our friendship, I started learning how to program the Apple II computer, using UCSD Pascal. Some of it was simpler than OMSI Pascal, some of OMSI Pascal was missing, and some was completely new to me, specifically colours and graphics. I wrote my first 'book' teaching Pascal via graphics - this took a rather different approach than the standard approach to teaching programming.

In 1986 I purchased my first IBM compatible PC that came with Turbo Pascal. Again, some of the more advanced features of OMSI Pascal were missing, but TP was better than UCSDP and much faster. I rewrote my 'book' and used it to teach a progamming class in 1990 for my new kibbutz. At the same time I was involved in rewriting a home-brewed production system for the factory where I worked.

Who knows what would have happened had I not learnt the Pascal language. Would I still have been struggling in BASIC? Maybe I would have switched to C (we also had an implementation for this on the PDP) that seemed to be equivalent to Pascal but much harder and accident prone (this is by design).

A few years down the line and Pascal evolved into Delphi, the programming language/environment that I am still using today with great success. So I owe a huge intellectual debt to Nicklaus Wirth.



This day in history:

Blog #Date TitleTags
52906/01/2013Sending mail from programsProgramming, Delphi, Office automation, Email, HTML
157106/01/2023Randy Newman's 20 greatest songsSandy Denny, Randy Newman

No comments: