Ajax wrote:Sorry, but it *is* difficult to believe that software is getting better. 30 years later, and you've still got people on this forum complaining about the exact same problems.
Things are "different" but not much "better." Now that computers are ubiquitous and essential, vendors have even less incentive to make things better. A large focus is on security... and I certainly can't blame vendors for that.
Two comments:
First, if one does what Keith is doing. Sets up a computer configured as the factory built it and doesn't change it, then reliability is pretty good. Historically, this sort of Use-As-Shipped computers have become massively more reliable over the years. Do keep in mind that Microsoft wasn't a vendor of real operating systems for business use until NT and even a bit beyond that. It was a vendor of PC software. Those aren't "real computers" in the same sense that a personal mobile phone is not a real computer. The distinction is that a personal device that fails puts one person out of work. A real computer, the sort that runs something like airline reservations, is one (actually a cluster) that takes hundreds or thousands of customers off-line when it fails.
To judge the reliability of the software industry by the garbage that runs on personal devices is like judging the reliability of commercial jet aircraft based on home built and home modified tiny single engine recreational aircraft. It's a mistake. We need to stop thinking our toy computers are indicative of the industry.
Second, those self-same toy computers/phones and tiny servers are often being asked to do things that the manufacturer never tested or expected. Every time you add an application, new network, etc.... you have expanded the scope of what you're asking the hardware and software to do. Keith has it right. Run the machine as configured by the manufacturer, only add a few well understood applications, and it'll run great. Simply put: You Don't Get To Screw With The Computer! Not if you want it to be remotely reliable. To revert to the airplane example, consider letting the owner of said small personal airplane rebuild his own fuel system or install a turbo on the engine. Then, when it blows up, blame the industry which includes Boeing and Airbus for the failure.
One of the simple reasons that Apple computers are provably much more reliable is that they don't let you screw around with them as much as Windows/Intel machines. This is a major reason that Apple really doesn't like selling their being desktop machines except through really well trained re-sellers. In the category of "screwing around" you have to include any change which is not a vendor approved applications or modification to the OS, application suite, networking, storage, etc.... What this means, obviously, is computer amateurs and hobbyists get fired from real computing sites.
Look, I like playing with computers. I like it a lot. But for the same reason I don't try to reprogram the ABS on my car, I don't try to reprogram or improve the software on a computer upon which I depend. (And I mostly know what I'm doing.) If computers were sealed after manufacture and the software was only run from a clean re-load on each boot with no after-boot changes, reliability would skyrocket. Even for the toy computers we think we should be allowed to screw up. We did this at SGI when building computers for the military. By locking the hardware, physically, and locking down the software we saw a 400%++ improvement in MTBF across many thousands of machines.