I have written several posts about the most ubiquitous of computer programs, “Hello World.” See “Hello World” through the ages, “Hello World” and programming, “Hello World” and Twit-messaging, and Dave Shields HELLO Tom Friedman.
As you will learn in my next post, today is a day both of farewell and of starting a new phase in my life, which got me to thinking if there was such a thing as a “Farewell World” program.
One obvious instance is the Blue Screen of Death, familiar to countless users of Windows. It’s the signal that Windows has wandered into a rathole of Microsoft’s own devising, and has found no way to escape.
Though it doesn’t involve a Blue Screen, I heard of another example of “Farewell World” from Microsoft last week. I was on a call with a colleague, and he said he was going to tie into another colleague so we could have a conference call. He came back a few minutes later saying that he been unable to reach the other person. When I spoke with the missing party later that day I learned that he had just bought a new cell phone. Though he had thought of getting one that ran Linux (that they exist is an example of Linux’s every growing march into the embedded space) he wound up buying one from Sprint since it didn’t cost that much, even though it ran Windows Mobile Edition.
He said his phone had rung earlier in the day, and knew the call came from our colleague, but that when he tried to answer the call the cell phone hung!
I can think of two “Fareworld World” programs from the land of Unix and Linux.
Back in the early 80’s, during my years on the SETL Project, we had the pleasure of the company of Lambert Meetens. He had been an active colleague of Robert B. K. Dewar back in the days of Algol 68, and Robert invited Lambert to spend a year with us at the Courant Institute at NYU.
Though I know it was great to have him around, and I know he did good work, I recall only two specific things about his visit.
First, Lambert had his own “Farewell World” experience. I learned from a colleague that Lambert had spent several months doing all his work on a Unix box. Realizing that the machine might crash and his work might be lost, he decided to save all his files on tape use the Unix “tar” (tape archive) program.
So he mounted the tape, planning to type the command “tar cfv …” to create the archive.
Thing is, if you look at your keyboard you will see that the “c” that stands for “create” is right next to the “x” that represents the “extract” option of tar, the inverse of save. His finger landed on the wrong key and thus his directory was over-written with the files on the tape. Six month’s of work lost.
This is an example of hideous design, using two adjacent keys to represent such opposed function.
The greatest impact of his visit came on his return to CWI in Amsterdam, where he and some colleagues created a programming language to teach basic programming principles. They called it ABC. The wikipedia entry says in part” ABC also had a major influence on the design of the Python programming language; Guido van Rossum, who developed Python, previously worked for several years on the ABC system in the early 1980s.”
Though SETL never wide achieved wide usage, it’s spirit has lived on in Python, which is why Python is my favorite programming language.
A second example of “Farewell World” is the Morris Worm, in which a small program meant to “gauge the size of the internet” happened to have a bug that brought the Internet to its knees.