One of my favourite books ever. Raymond Chen's blog of the same name has a new and almost always very interesting article about software development (on Windows in particular, of course) every workday. The most interesting and entertaining blog posts were expanded and make up the book. Chen has formidable talents both as a programmer, as well as as a writer.
Although the author removed the names of the publishers to protect the guilty, you can google many of the error messages to find out who he's talking about.
The proper way, in 1996, to insure that your program would not run under Windows 95, was to make it run under Windows NT 3.51, which was available and stable at the time. Under NT, you could use OpenGL, NTFS, security features, and TCP/IP networking (that was an add-on called "Plus!" in Win95) which consumer-grade Win95 didn't support. You could run high-end applications such as Softimage|3D. You could even run NT 3.51 as a network server.
NT 3.51 also offered a nice feature known as "not crashing". It was a far more reliable OS than Win95, which had a huge amount of legacy and backwards-compatibility code. On NT 3.51, the 16-bit subsystem could be disabled at boot time, and everything ran fine without it.
Yes, nt 3.51 was pretty cool back in the day, however, your snark is a lot less interesting than the article, which went over quite a lot of things MS not only found, but wrote workarounds for when possible, so Win95 would work with crappy programs. Furthermore, Windows 8 does not have the 16 bit subsystem in the vast majority of systems shipped. None of the 64 bit versions of the operating systems ship with 16-bit Windows on Windows, and the 32 bit version is pretty much only shipped if you have very specific needs.
Could you really not use OpenGL under Windows 95? I seem to recall running GLQuake and GLQuakeWorld a good while before the release of Windows 98. GLQuake was released in 97.
I am pretty sure glquake used a weird system of drivers called mini-gl that were either provided by ID or graphics card makers. They only supported an extremely limited subset of opengl. See: http://en.wikipedia.org/wiki/MiniGL
I actually have found memories of Windows 95, Service release 2.5 of course.
Yes programs crashed here and there but it wasn't until Windows ME did I know the true meaning of crashing.
Thankfully I had also had Windows 2000. I thought it was the best piece of software ever written at the time!
It's frankly amazing that Win ME managed to be so much less stable than previous iterations of Win 9x. I dealt with it for a year or so in college before I was able to get my hands on something better, and it was basically a "run once" OS, as in you ran your applications once and then rebooted because anything else would guarantee the appearance of the BSOD.
People complained about Vista, but it was smooth sailing in comparison.
I also used ME for about a year but I don't remember it crashing once. Never understood why everyone had such problems with it, I thought it was just Windows 98 with USB drivers.