Linked by Neeraj Singh on Mon 23rd Apr 2007 19:02 UTC
Windows If you shout something loud enough and many people are saying it, does it become true? Some groups of people (include tech journalists and Linux advocates, such as Steven J. Vaughn-Nichols) have a psychological need to find Vista lacking. Mr. V-N has predicted that Vista will have all manner of problems, so his clear interest is to point out everything that is wrong with the OS. Who cares if he has to even make some stuff up?
Thread beginning with comment 233348
To view parent comment, click here.
To read all comments associated with this story, please click here.
butters
Member since:
2005-07-08

I care because I don't want to see other students be seduced by the "worse is better" mentality that many UNIX denizens espouse.

We prefer "simpler is better." Surely with enough talent and man-hours, you can create a gigantic tangle of complexity that manages to function as an operating system. But is that better than a set of simple components that fit together in a logical way?

Students learn UNIX because its design is comprehensible, elegant, and fundamental to understanding computer systems. They don't learn Windows because there's no reason to mimic its design. Maybe its feature-set, but not its design.

I'm sure there are countless top-notch developers working on Windows, and the kernel is actually pretty decent these days, but the platform as a whole is screwed. Microsoft can try their best to improve their code quality, but they cannot immediately abandon unfortunate design elements (e.g. the registry) or police their crappy third-party drivers and applications. You can't put sour milk in the fridge and expect it to become drinkable.

What the Windows faithful don't understand, and many of the Linux advocates as well, is that third-party software is what makes running Windows insecure and unreliable. I have no problem with third-party software as long as it's open source, but I'll only accept proprietary software if the vendor offers full support for their product. Microsoft can't support the vast array of proprietary third-party software that its customers use, but when this crap fouls up their systems, it reflects poorly on them. People install a couple dozen applications that all disclaim any responsibility if anything goes wrong, and then when things go south, they blame Microsoft.

So excuse me if I'm not dying to see all sorts of third-party proprietary software on Linux, because the result will be much of the same. I like the fact that my software vendor supports nearly all of the software on my system, providing timely fixes and easy upgrades. If I use proprietary software, I have to live with the fact that flash might not work in a 64-bit browser or that the NVIDIA drivers might not work with the latest version of Xorg for months. I don't try to file a class-action lawsuit when the proprietary drivers don't work properly. I understand that with proprietary software, I'm at the mercy of the vendor, and if I don't like the way their software works or what environments they support, there's nothing I can do about it.

I find it amusing that journalists are going to such great lengths to rationalize the public's general distrust of Microsoft or criticisms of Vista on technical grounds. In the end, it's not UAC, DRM, WGA, or the various UI quirks that create the sentiment that Vista is simply more of the same from Microsoft. It's just that everybody is fed up with the proprietary software industry screwing us over and making us deal with the mess. We can't keep blaming Microsoft forever. We have to give credit where credit is due and point our fingers squarely at the proprietary vendors, particularly the graphics vendors. They suck at shipping good drivers for Windows almost as much as they suck at delivering them for Linux.

Reply Parent Score: 5

PlatformAgnostic Member since:
2006-01-02

Thanks for a thought-out reply. You're absolutely right about third-party binaries and their detrimental effect on the stability of the system. The applications I use the most on Windows are either written by Microsoft or Open Source, so I definitely live by your statement. I have no choice with drivers, but I'm lucky to have mostly intel hardware with pretty decent drivers.

I have a pretty strong philosophical difference with you on the nature of simplicity in the OS. The Linux/UNIX method of simplicity is great for certain tasks, like high-performance-computing and portable servers. It's also great for bringing up new hardware, as you said in a recent post. But when it comes to making applications that have to have many interactions with the underlying system or which have to get a naturally complex task done, I think it's better to put some intelligence into the OS.

File-locking in distributed filesystems is the first issue that comes to mind for me. Windows has a pretty interesting mechanism to do distributed locking in the SMB protocol. UNIX used NFS for quite some time, which didn't even attempt to solve this problem, so it appears in applications. This is fixed in newer DFSes like NFSv4, but it's an example of what I consider "worse-is-better."

The registry is a Windows solution to setuid. It's basically a filesystem for storing key-value pairs which can be ACLed separately from each other. It also has atomic operations and in Vista, MSFT has implemented ACID transactions on the registry so partial installs can be transparently rolled back. I'd see the registry as a design strength of Windows rather than a design flaw.

I'm sure you've seen this before. I don't necessarily believe everything in here, but I think it's pretty funny and accurate in areas:
http://www.simson.net/ref/ugh.pdf

I respect your opinion in general, and I'd like some specifics in areas where you think the Windows design is deficient. I'm sure I'll agree with you on a lot of them, but the disagreements could be interesting. How would you feel about doing a joint OSNews article? It could be high-quality.

Edited 2007-04-24 06:19

Reply Parent Score: 4

butters Member since:
2005-07-08

The Linux/UNIX method of simplicity is great for certain tasks, like high-performance-computing and portable servers... But when it comes to making applications that have to have many interactions with the underlying system or which have to get a naturally complex task done, I think it's better to put some intelligence into the OS.

What I mean by simplicity is that a complex system is made up of simple and often interchangeable components that interface in a well-defined manner. Each component can be developed in loose coordination with its neighbors and completely ignorant of other components in the system.

The complexity isn't in the components themselves so much as the way they fit together. This is why UNIX and free software has excelled in the server space, where systems are often logically structured as a stack of components. The choice of where to draw the lines and how the components communicate isn't really that difficult in a stack.

But a desktop is more like a tree or even a more general form of graph. Some components form a sort of stack, others connect to a bus, some synchronize, others stream, and many participate in a combination of these relationships. Where to draw the lines and how to connect the dots is a harder problem, and as we watch the free software desktop develop mature technologies like DBUS and KParts, we see more powerful ways of connecting the components of the desktop becoming central pillars of the platform.

But as the componentized system that evolved in a distributed development environment becomes more powerful, or intelligent as you say, the complexity of each component stays in check, and the complexity of their relationships scales reasonably. The monolith forged in the halls of the Redmond campus, on the other hand, becomes harder and harder to maintain as new features creep in.

I shied away from your NFS comment before, but I'll agree with you that NFSv3 had its shortcomings and that NFSv4 is arguably even worse overall. Of course, Linux and other UNIX-like systems have SMB and CIFS support, but that doesn't mean that this is the best possible solution. There are other DFSs like Cargenie Mellon's AFS and Coda, IBM's GSA, and Red Hat's GFS, among many others. Then there's the trend of tunneling anything and everything through SSH to arrive at some interesting solutions like sshfs.

I have no problem with a registry in theory, such as the gconf registry in GNOME. But the Windows registry was subverted by malware authors early on, and Microsoft has seemed powerless to do anything about it. Maybe you could better explain how this happened, if you agree that the registry has become a weakness for Windows, that is.

Reply Parent Score: 2

BluenoseJake Member since:
2005-08-11

"What the Windows faithful don't understand, and many of the Linux advocates as well, is that third-party software is what makes running Windows insecure and unreliable. I have no problem with third-party software as long as it's open source, but I'll only accept proprietary software if the vendor offers full support for their product. Microsoft can't support the vast array of proprietary third-party software that its customers use, but when this crap fouls up their systems, it reflects poorly on them"

Hear Hear. I think poorly written drivers are one of the biggest problems for Windows, follow a BSOD, and you'll usually end up with a 3rd party driver. Add on top of that AV software (with hooks into the kernel), spyware scanners, and the user running as Admin, and you have a recipe for disaster.

Reply Parent Score: 2