Windows 95 Turns 20
Etherwalk writes: Windows 95 turns 20 tomorrow, August 24, 2015. Users looking to upgrade from Windows 3.1 should be warned that some reviewers on the Amazon purchase page have been receiving 3.5" high-density floppy disk versions instead of a modern 150 kbps CD-ROM disk. Do you remember first seeing or installing Windows 95? Do you have any systems still running it?
.... the Briefcase!
I just can't remember what it was for.
Win95 was such a huge upgrade. We forget now, but it packed an astonishing amount of stuff into just 4mb of RAM (8mb recommended). If someone produced it today in some kind of hackathon it'd be praised as a wonder of tightly written code. They even optimised it by making sure the dots in the clock didn't blink, as the animation would have increased the memory usage of the OS!
It's surprising how little Windows has changed over the years, in some ways. Not because MS didn't want to change it but because the Win95 UI design was basically very effective and people still like it, even today.
I've seen it running in a VM because of software that big money was paid for that was still perfectly satisfactory for it's intended purpose. Why buy new software when there is no need? The old computer died and the new modern Win 8 box wont run the software? Virtual environment to the rescue!
Yeah, but that instability was not entirely Win95's fault.
Back then computers had almost no resources. NT had a "proper", academically correct OS design with a microkernel architecture (until NT4). It paid for it dearly: resource consumption was nearly double that of Chicago. Additionally, app and hardware compatibility was crap. Many, many apps, devices and especially games would not run on Windows NT. Microsoft spent the next 6-7 years trying to make NT acceptable to the consumer market and only achieved it starting with Windows XP.
So Win95 was hobbled by the need for DOS and Win3.1 compatibility, but that is why it was such a huge commercial success.
Making things worse, tools for writing reliable software were crap back then. Most software was written in C or C++ except often without any kind of STL. Static analysis was piss poor to non-existent. If you wanted garbage collection, Visual Basic was all you had (actually it used reference counting). Unit testing existed as a concept but was barely known: it was extremely common for programs to have no unit tests at all, and testing frameworks like JUnit also didn't exist. Drivers were routinely written by hardware engineers who only had a basic grasp of software engineering, so they were frequently very buggy. Hardware itself was often quite unreliable. Computers didn't have the same kinds of reliability technologies they have today.
Most importantly nobody had the internet, so apps couldn't report crash dumps back to the developers, so most developers never heard about their app crashes and had no way to fix them except by doing exhaustive, human based testing. Basically that's what distinguished stable software from unstable software: how much money you paid to professional software testers.
Everyone who used computers back then remembers the "save every few minutes" advice being drilled into people's heads. And it was needed, but that wasn't entirely Microsoft's fault. It was just that computing sucked back then, even more than it does today :)