Software is Losable

When I listed what I thought of the Great Works of Software, I also offhandedly listed some great works of art: The David, Beethoven’s 5th, and Pride and Prejudice. One of the reasons I think of them as great is because they are old and still relevant. We haven’t lost interest in them, and also, we haven’t lost them.

Pride and Prejudice can be reproduced exactly as it was when it was first written in all the ways we care about, but we could have lost it early on if Jane Austen hadn’t published it. We still have The David after 500 years, but we could possibly lose it forever. We have already lost the first performance of the 5th, but we could make something similar from the music sheets.

In this way, software is most like music. We have source documents, but the real thing is inextricably tied to hardware. We play recordings or perform music just like we run programs—on hardware. The hardware and the performance is big part of what we think the software is. A book is also delivered on hardware, but we don’t consider the paper or the Kindle or the Audible file part of the work.

All of this makes software losable, because if we lose the ability to run the software, we have lost it.

On my list of the five great works of software, three of them are in active maintenance. We still have the other two (browsers and spreadsheets), but the originals by Tim Berners-Lee and Dan Bricklin are frozen in time and harder to run.

VisiCalc was written for the Apple II in 1979. I don’t know if you can run that version, but Dan Bricklin claims that the executable for the PC will still run on modern Windows under DOS (because Microsoft believes New Versions Should be Substitutable). I am sure you could get a DOS emulator even if a modern one can’t run it any more. We haven’t lost it yet.

There is a version of Berners-Lee’s WorldWideWeb client on GitHub, it was written for a NeXT machine. I don’t know how to run it, but there is at least one NeXT emulator that might be able to, so it’s also possibly not lost yet.

It’s not a “great work”, but I have run My First Real Program on a PET emulator because it was small enough to commit to memory. Almost all programs I have written between then and when I started working professionally are lost because they were tied to floppies that I didn’t keep.

The possibly longest continuously running software, Voyager, is very far away, but not lost yet.