June 8th, 2018

Hard Stare

The decline and fall of Windows

Underneath, in a lot of ways, NT is a pretty decent OS. The problems are mostly due to the marketing dept.

If the NT team had been allowed to pursue their original goals undisturbed, it'd be a better OS. Marketing insisted:

  • It was possible to use it standalone with full local admin rights;

  • IE had to be integrated;

  • It had to run as many Win9x binaries as possible;

  • The GDI was moved into the kernel for performance.

Etc. etc.

NT the core OS had nothing to do with Windows. It's derived from OS/2 3, the original cross-platform CPU-independent non-x86 version. It originally targeted the Intel i860, the N-Ten. That is where the "NT" sobriquet comes from.

Part of the design spec for NT was that nothing talked directly to the native API. It exposed "personalities" to userspace. It shipped with 3 of them: OS/2, Win32 and POSIX. OS/2 was later removed, again mainly for marketing reasons. It never included Presentation Manager, so it could only run text-mode OS/2 apps, but NT 3.1 (& I think 3.5) included full HPFS support. NT 3.51 could use them but not create them. NT4 couldn't but you could use the driver from 3.51 if you copied it across and created some registry entries.

There's a lot of nostalgia for OS/2 out there, but I used it and it was pretty nasty, especially the 32-bit version. A massive, 1000+line CONFIG.SYS file, which had to be byte-perfect or it wouldn't boot. A weird mixture of 16-bit and 32-bit code, much like Win9x but, amazingly, not even as clearly separated as in Win9x. (Be afraid.) Inability to bootstrap itself from DOS or any other OS. Inability to boot directly from CD for a long time. A weird shell unlike anything else, with weird definition of mouse buttons. E.g. the tree view was separate from file management windows, and its native app model was a strange template-based thing like the Apple Lisa, unlike anything else I've seen.

NT 3 was OS/2 done right, I'm afraid. Simple quick Win3 UI. No text files; everything in a database. (Yes, that decision has come back to bite now, but at the time, it seemed right.) Supported lots of disk formats, lots of network protocols; nothing was more or less "native" than anything else. It was relatively simple, clean and fast. It didn't support much Win9x stuff but to hell with that toytown GameOS.

The shell could be replaced, although few ever made it out there. There was a NeXTstep port, never released, and a skin-deep FOSS clone thereof.

NT4 was when the rot set in. The GDI was moved into the kernel, so rogue graphics drivers could bring down your enterprise OS. Unfinished unstable APIs like DirectX and Direct3D were imported from the Win9x division, but it didn't do PnP or USB.

The new Cairo FS and UI were dumped, unfinished, and the Win9x shell bolted on top instead.

NT 5 ("Windows 2000") at least supported PnP, USB etc. which were nice. Crapware like "Windows Movie Maker", some IE-related bollocks, a half-assed "file and settings transfer wizard" thing were bolted on and couldn't be uninstalled. You couldn't uninstall and reconfigure the network stack or the crappy extras any more. It was still a half-decent OS but starting to bloat out and crumble.

Then XP completed the marketing-led transition to junkware. Ugly themes, more unremovable bloatware. The only good thing was much faster hibernate and wake.

That's when I ditched Windows and switched to Linux and OS X full-time.

But that's when hoi polloi jumped on board with they nasty little games and the malware authors followed them. XP brought NT to the mainstream and that spelled its doom as a credible OS. When the world heard about it, it was all over.

Some Mac owners bitch about how Apple removes "legacy" features too readily. OS X 10.5 couldn't run Classic MacOS apps. 10.6 didn't support PowerPC machines or AppleTalk file sharing, but it could run PowerPC OS X apps. 10.7 dropped PowerPC apps, leaving you with only crappy Ribbon-infested versions of MS Office, and couldn't even print to AppleTalk printers.

But taking a longer view, this is a good thing. It means OS X doesn't accrue so much legacy cruft.

64-bit Windows finally dropped 16-bit app support, but that is about all MS has removed except some ancient network protocols. If MS was serious about Windows, it would have at least the choice of an edition which dropped 32-bit apps too, dropped everything except IPv4, dropped directly-installable binaries, and if I could be bothered to give any more thought to this, I'm sure I could identify half a dozen other ancient bits of unnecessary junk they could remove. MBR disk support, perhaps.

But it isn't. Marketing still rules.