Unix vs Mac

(Flat vs the Real World)


[This page expresses the personal opinions of the author concerning the philosophy of computer programming. It is a minority opinion, many (perhaps most) computer programmers vehemently disagree with this position. They are Wrong. However, they run the (computer) world, and if you are going to be programming professionally, you must work with them. So, even if I convince you on the merits of humane programming, you might want to tone down the rhetoric somewhat when dealing with these less enlightened persons, because they too are still people.]


The original computers were lights and switches. Then in the 1960s somebody had the brilliant idea to make everything a flat file. Unix became "state of the art" in the 1970s, and the "buggy whip" (obsolete technology, suitable only for historical museums and nostalgic carriage rides) of the tech 1980s. Then Steve Jobs came back to Apple and replaced the "aging" 17-year-old MacOS with the "modern" 34-year-old unix, and in the 90s unix became what it is today, a zombie that cannot be killed. I think you need to drive a wooden (or is it silver?) stake through its heart, but unix has no heart, it was stolen by the (original) MacOS.

This is not Apple vs Windows, nor both of them against Linux. OSX is unix under the hood, and Windows is DOS (a unix wannabe) under the hood, and Linux is unix. Unix is flat and linear and easy for beginners to understand; the Real World is lumpy and bumpy and hard to program for. Nobody can go back to the way it was before 1984, so they paint a thick layer of whitewash over the command line. You can write event-driven software to run on OSX or Windows or even Linux, but it's not native, every OS still has the flat file system and the command line (the flat-file version of the keyboard) down there at the bottom for programmers who have not yet graduated from kindergarten. But if you learned to ride a bike with training wheels, the trike will always be easier than a true 2-wheeler.

The Real World is lumpy and bumpy, and we need to write programs for the Real World, and for real people. It's more work, but it's worth it. Computers can take some of the bumps out of life, but those programs are harder to write. A particular problem domain has a fixed level of complexity -- I call it the "Conservation of complexity" -- and either the programmer must bear the weight of that complexity, or the user must. The programmer can do it once, but the user must do it every time. Make the world a better place by lifting some of the load off the users.

That's my philosophy, and I have some outstanding commercial programs to show for it. You can too, if you want to.

Tom Pittman
Revised: 2020 October 22