One of my favorite films is Akira Kurosawa’s Yojimbo. It stars Toshiru Mifune, who plays a lone samurai who comes into a town where two factions are feuding, and then skillfully plays one against another until he is the last man standing, so it’s no surprise that the film was (poorly) remade as Last Man Standing, starring Bruce Willis, in one of his worst films (all gore, no subtlety, which was the point of Yojimbo.)
I was reminded of this while doing a cleanup/refactoring of the code for Macro SPITBOL.
There has been almost no work on SPITBOL, save the port to Linux, in the last decade. Most of the code has been stable since the mid 80’s, save for ports to different architectures.
SPITBOL has a run-time interface written in C. While perusing this code I noticed the code had conditional text for various operating systems: AIX, BSD, LINUX, SOLARIS, and WINNT. Not Windows, but WINNT, a sign of the age of the code.
I then decided to clean up the code. There was no need for SOLARIS. It’s dead, though its new owner Oracle has not yet addmitted it.
AIX is also an outlier OS now, used only in large servers, so that went next.
BSD, UNIX and LINUX are all variants of UNIX.
That left WINNT. I then realized that, while much of the WINNT code would probably still work, I had absolutely no intereset in supporting it. That’s because Microsoft has not made any meaningful innovation, at least when it comes to Windows, in the last decade or so.
One thing (is it the only thing?) Microsoft does well is to support previous versions of its various OS’s, going all the way back to DOS. For example, the Windows/WINNT version of SPITBOL, last touched over a decade ago, still works, and so is in my view sufficient for Windows users.
I thus edited the source so there is *no* conditional text to distinguish operating systems, because there is only *one* OS of interest. It runs everywhere, and is where operating system innovation can still be found.
So I deleted *all* the conditional text, and changed the source to just use “Unix” instead of “Linux” in the version/achitecture description.
Needless to say doing that edit was a lot of fun. Bye bye, SOLARIS. Bye, bye AIX. Bye, bye Windows. Just Unix is enough for me.
The remaining issue is what hardware to support.
I see only two architectures of interest: X86 and ARM. SPITBOL supports X86 now, and I will port the system to ARM within a few months.
This is one result of working on legacy code. It gives you a sense of what was once important, but no longer is.
It also gives you greater appreciation for the survivors, and all the hard work behind them.