Today's an anniversary of a sort. It's twenty-seven years since the release of Windows 95. Those of us who had the $4000/year subscription got it delivered automatically, like everything else.
It came with 6:12 of the 'Windows sound' by Brian Eno.
It also came with Weezer's 'Buddy Holly' and Edie Brickell's 'Good Times'.
Microsoft organised events for the rollout. Steve Ballmer bellowed to the world that Windows 95 ran even faster than older versions, and on as little as 4 MB RAM, the standard at the time. The only company offering more RAM was Dell. They had an option for 8 MB, so we ordered from them, anticipating the worst.
(Two years later, one of those boxes was already demoted to 'entertainment centre' for the office at the Cambridge Science Park.)
The actual Windows 95 events were a disaster, at least in our neck of the woods, at least in our opinion. True to form, all demo boxes had precisely 4 MB RAM, and it took ten (10) seconds realtime to minimise or restore a window.
Windows 95 was originally supposed to be Windows 94 and had the code name 'Chicago'. A prominent IT reporter in Sweden bet Microsoft's local chief a case of wine that they'd never make it by 1994, and he was right, and promptly received a case of wine.
Microsoft held conferences around the world, and mostly stopped off in Stockholm first. What we initially learned was a bit confusing. News of how things would go with their toolbars was fuzzy and mostly incorrect, and we hadn't yet seen what was going on under the hood.
They also handed out CDs with legacy source, so we could finally see why their Othello (they called theirs ‘Reversi’) could so reliably be beaten: what likely was a typo in their bonus board that remained undetected (yes for all those years).
Their code for that game also smacked of ‘rush job’, putting way too much on the stack and slowing things down considerably.
Under the hood: yes, it was tangled assembler code that no one at Microsoft much understood anymore. The original Windows kept flipping from its own native mode and back into 'terminal' mode before settling down.
Yet the need to get all the way up into 32-bit was pressing. You can't make real preemptive multitasking with less.
What Microsoft finally settled on was something they called the 'Win16Mutex'.
'Mutex' is short for 'mutually exclusive', and a mutex represents a synchronisation object.
Programming code utilises a synchronisation object by requesting access. The scheduler then puts the requesting thread in a sleep state, so it uses no clocks whilst it waits.
With 'mutex' objects, only one thread is allowed access at any one time - they're 'mutually exclusive'. And in this case it was vitally important that one and only one thread be allowed in at any one given time.
Being released on a Win16Mutex meant you now had access to all the 'glories' of old Windows. That Windows was of course not preemptive multitasking, but what they called 'cooperative multitasking', meaning any wayward code anywhere could bring the whole thing crashing down. One couldn't let that happen in Dave Cutler's world. So one thread at a time.
Windows 95 also allowed 'long file names', the first time you could put space characters in a file name, the first time you could extend beyond the traditional 8.3. Windows 95 couldn't handle this too well. The visible representation of these names wasn't pretty.
Windows 95 also meant 'web access'. Sir Tim Berners-Lee had recently invented the 'web', and passed it into the public domain. Now everybody wanted to get on board. Connections were through dialup and speeds were measured in bauds and they ran through mostly unreliable telephone lines. Telephone companies like BT continued to charge per connect, and, with their rusty lines, it could often take up to ten calls to secure a connect, so Internet time could be expensive.
Netscape Navigator was all the rage. It cost about $20. Microsoft started drowning Netscape out by placing bins of free Internet Explorer diskettes in computer stores world over. That's right: the original IE release fit on a single 1.44 MB bakelite diskette.
Explorer made its mark too. This was Microsoft's new file manager. Except it wasn't really a file manager - it was a namespace manager. What's a namespace? Oh something Microsoft made up. They had groups of apps they wished were in the same folder and vice-versa. So they made things appear not as they were but as they wanted you to think they were. Very irritating.
The namespace tree was hierarchical with 'Desktop' at the very top. Then further down the hierarchy, way way down, you found the same 'Desktop' again.
But the basic programming interface was 32-bit. Although there were inevitable issues with integer lengths. The only thing C guarantees is:
short <= int <= long
So long would be 32, and int would be - what? And what about short? 16? Or 8? So there were some issues.
Interest in Windows was booming, so we were going over to London to hold courses regularly.
The carpetbaggers followed along. These were the people who had experience programming for Unix and saw how easy it would be to wrap some open source code in a Microsoft Foundation Classes wrapper and sell it for big bucks. The worst we saw was a rip-off called 'DEPENDANCY' [sic]. It used a toolset available to developers, wrapped a bit, and sold the thing for $25. How many they sold (they called themselves 'ESCHALON SOFTWARE' [sic - they weren't too good at spelling]) isn't known, but they got over 50,000 downloads at ZD.NET (which we promptly rechristened 'DOOFUS.NET' - they were pretty extreme back then).
That's what finally got us putting our own wares online. We couldn't contain the outrage at rip-offs like that.
It was still a few years before the world would see Mudge's treatise on EXE-hacking, and years more before we all lost our virginity with 'ILOVEYOU', when the world collectively began to understand - or some of us at least - that you can't put standalone systems like Microsoft's on the Internet.
The world around caught on a bit. Microsoft never caught on. They had too much money riding on their abortive venture. And Bill Gates never worried much about user welfare.