“Once upon a time, operating systems managed the resources of computers, and that was about it. But after the PC revolution, most software makers started subscribing to the theory that bigger means better. But does it?”
“Once upon a time, operating systems managed the resources of computers, and that was about it. But after the PC revolution, most software makers started subscribing to the theory that bigger means better. But does it?”
I agree in the sense that Windows needs to be more modular. This does not necessarily mean that Microsoft cannot or should not bundle web browsers and mail clients (that’s a slightly different question) but rather that these items, along with many other components, should be easily removeable and/or replaceable.
This is obviously not the case most likely since it’s not in Microsoft best interest. A market failure from an economists view and a technological failure from an engineers view.
I have said it before and I will say it again. The way to more robust and better (proprietary) software is well defined and open standards. That would enable fair competition and in the long run better software.
Edited 2006-02-28 19:14
I totally agree with the article and think MS is starting to go in the right direction. The latest IIS Web Server took a page out of the Apache book and supports loadable modules. That also means that unused features can be kept from loading to increase speed/security.
I’m still taking the whole Vista thing with a wait and see attitude before I unmercifully judge it. I just tried the latest beta and it’s not ready just yet…
The Unix philosophy states, “This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.”. Maybe Microsoft toward the “smaller more modular” approach.
Reshuffling upper management, using newer development methodologies, and “the principle of least authority” are all steps in the right direction. How well they execute these steps is up to them.
I don’t know I can agree with this article. There has to be a line where Microsoft stops, but where is this? Sure not trying to force you to use IE is a nice idea, but in reality you don’t have to use it now. Do we remove things like Notepad, Calculator and Windows Explorer?
Having a lot of standard useful software is great from a support perspective also. Helpdesks don’t want people to have the freedom to choose whatever they like in whatever configuration – it’s unmanagable.
“Microsoft continues to spend more time and more money fixing problems in applications bundled with Windows than it should. Putting too much functionality into Windows was a mistake, and everyone knows it — and it’s time Microsoft accepted it.”
I’m not so sure. Why on earth would they stop? There’d be very little reason for Microsoft to update the core OS with features since they’d be too close to ‘non core’ features.
This is again where the line comes in.. just where is this? I supose the core of Windows would be the kernel and the API which would mean no GUI.
No I can’t find myself agreeing with this article’s perspective. I don’t want to start a flame war, but if you look at Linux it’s extremely modular, and yet it has bugs all over being fixed.
The days of past computer I will admit were glorious but they are in the past and I think we all need to step into today’s computing.
The articles says this, but the above summary really doesn’t.
The main problem with Windows is not simply that a few bits of applications software and various subsystems are included in the package, but that the software is included in such as way as to make it inseparable from the core OS itself.
The fact that there is so much peripheral functionality “bundled and buried within Windows” continues to fly in the face of conventional wisdom regarding operating system (and application) design.
This conventional wisdom usually states that compartmentalization is good, and that breaking a complex solution into a series of smaller discrete units which are easily isolated from each other (and thus easily debugged in isolation) is a very good way to make things easier to enhance, easier to support, and easier to keep secure (or make more secure) over time.
Instead, Microsoft has created a large, intertwined, and largely monolithic structure, and then modified the entire existing structure over the years, creating a largely organic morass of software logic which is hard to understand, harder to document in the conventional sense, and even harder yet to continue to maintain over the long term in anything resembling a secure manner.
Many software makers do not agree with Microsoft’s philosophy that bigger and more inclusive is better, at least in a monolithic sense.
UNIX folks tend to believe that collections of smaller discrete tools are a better way to approach the problem, and many of the mainframe folks I work with have a very similar philosophy.
The tools we work with on both UNIX and mainframe large systems work very well (and are very stable) because they are relatively simple, they are fairly well compartmentalized, and they have been tested thoroughly and systematically over time.
That high level of compartmentalization represents a design advantage, and Microsoft is going to continue to have the types of problems we’re seeing them have until they start looking at revamping their software design practices.
Summary
To Borg or not to Borg
Interlinked_interdependant or free to link as needed
..with the author on Windows having to be more customizable, but MS wouldn’t have become so big if they had the same setup like the different *nixes have.
Choice is good for those that know what they want. Choice is bad for those who have no idea what to choose. Unfortunately most people don’t know what to do when a setup has a custom option.
“Choice is bad for those who have no idea what to choose. Unfortunately most people don’t know what to do when a setup has a custom option.”
They do know, they press “next”.
However, as somebody noted, the problem is that Windows, internally, is designed to be monolithic and inseparable. Which is a design issue with consequences like: bugs, poor security, and also lack of choice.
Edited 2006-03-01 14:47
Most Linux distro’s come with far more bundled software than Winows, including considerable amounts of useless fluff. And with automatic dependency resolution, modularisation becomes less of an issue, allowing developers to get away with complex networks of interdependent programs.
As for modularising Windows, I don’t think it makes a great deal of difference security-wise. I’ve replaced Windows Media Player and it’s codecs with VLC. Anyone can do this but no-one does. People use what’s available and don’t go looking for anything else without a very good reason. Microsoft has to bundle a media player, a web browser and an e-mail client with the OS – these days it’s expected – and as long as they do that, most people will use those programs, vulnerabilities and all.
It’s becomming a common trend for people to see their OS of choice being criticized, and immediately they start pointing fingers at others and sharing the blame without even rationally considering the accusations.
I for one don’t agree with the article, the OS should not be a baren platform for third party applications to be added to later at the users inconvenience. If people want less applications in their OS, 99% of the time there is a place in the installer where people can choose what they do and don’t want.
Err, what’s my “OS of choice” exactly?
>99% of the time there is a place in the installer where >people can choose what they do and don’t want.
Except with Microsoft’s OS, there isn’t.
Sure you have alternatives to most of the Microsoft stuff installed by default. You can replace them easily, but you can’t REMOVE the Microsoft software you’re replacing very easily.
Example:
I use Winamp as my default media player and Firefox as my default web browser. In both these casese I can easilly replace Interne Explorer and Windows Media Player, by deleteing shortcuts and manipulating Windows’ file associations, etc.
But I can’t physically remove Internet Explorer or Windows Media Player.
There MAY be third-party utilities to do that, but the point of the article IMO is that Microsoft should have allowed the user to do this without the use of third-party apps.
—
This is why I like Linux. Yes Linux distros come with lots of optional packages, but none of them entrench themselves so completely in the operating system that they can’t be removed without an extreme ammount of technical skill.
—
Edited 2006-03-01 14:38
I think Microsoft didn’t learn the unix lesson correctly. Vista will have 6 different versions instead of have one only basic version with the option to buy “modules”.
Even the server/desktop artificial diferentiation should be eliminated. Any linux distribution can be used as server or as desktop only installing different profiles or program sets.
I agree with the article in general but it’s too late for MS or end users to do or expect anything but more of the same with ever more gloss.
As a developer interested in OS, compilers, and apps, not being able to understand what is under the hood scares the hell out of me. Atleast with most other OSes (usual suspects) there is a sense of being able to study the components an reassemble to some degree. But our numbers are insignificant compared to the masses.
The first generation users were obviously more capable and happy to build their app suites by going outside and no doubt we spent a pretty penny. Todays users include huge masses of unsophisticated users that want basic stuff all thrown in and working together. For them let MS include basic versions of everything but keep out all the unused OS stuff that lets hackers in.
We’ll see how Google changes the scene instead, with various web apps, I no longer care about OS specific mail clients etc. I also use VLC to replace provided media players, same on all platforms, same for Firefox. I really want my apps to be OS neutral.
Bloat are always dangerous and windows are very bloated, but I don’t think that the number of applications are a big problem, the problem I see is API Bloat and too much interdependencies between modules and too much backward compatibility. This means that too much code are running unnecessary. I think that the number of services / processes is crazy and the amount of memory windows demand today is not acceptable. The complexity and volume of code will also increase the opertunity for bugs to manifest themselves.
Opposit linux gurus, I like GUI and graphical configuration tools, but the os should never depend on a a complex graphical shell to administrate it. If I was Microsoft I would have choosen not to support backward compatibility in Vista and favored a extending support for Windows XP/2003 with servicepacks.
I’m going to assume you think the API just has too much volume. If not please excuse me.
Having said that I don’t mind a huge API because it gives us access to more integration, larger communication channels and access to an ever increasing technology pipe, whilst offering a large degree of backward compatibility.
And to be honest I am not sure we can really blame Microsoft for this. Their operating system is the most popular, and as a result people want their equipment regardless of how obscure or old to work with it. This requires access to API that is backward compatible.
For instance I have an old Minolta laser printer, but it doesn’t have drivers for Windows XP. I can get it working, sort-of, by using older Windows 2000 drivers. Others have older software which wasn’t specifically designed for Windows XP for arguement’s sake. They still want it to work, and it probably will within a degree of uncertainy, because of support for older non-Windows XP specific API.
I guess the point is, from where I stand we the users are to blame for bloated API to an extend because we firstly want our older equipment and software to work on newer operating systems and secondly because we continually drive the desire (or need depending on your perspective) for newer technology. Both of these require extended API libraries.
If we all switched equipment and software each generation of an operating system of our choice, I am sure the API can be much more refinded. The bottom line is we wont and as such the API will continue to expand.
I have to agree to what you are saying. But what I dont get is, that with a properly tweaked and nLited system you can get XP running with only using 50mb of system RAM! People have done it…and XP runs blazing fast. I brought my computer memory usage to 120 mb and 18 services running and this is a fresh install but with all the software loaded in. This is right after a reboot or at idle after shutting down all apps. That is not bad at all. Bloat exists in the term of useless features that are going to be present in Vista…and I am sure the Windows community will do a great job at stripping out stuff people wont use for Vista.
What Microsoft could do right would be to make the software components more easily uninstallable.
I used to do the same thing. But then I would go to try to use something new and it wouldn’t work, because I had a required service disabled. So now I’m not so anal about disabling services, just ones I know I won’t need.
Make a Linux-like distro but with Windows so that during the install, the user can choose what extras to add, or just go w/ a default install. That way, if you don’t want to use IE, it’s not installed. If you don’t need all the networking support, it’s not enabled for you. If you’re Joe-user and don’t know/care about the apps being installed, then you get the default install, just like you get now.
Of course, MS will probably never do this since it’s rational (radical?) thinking and then they loose control over people. Although they may be able to cash in on it. Think about this: if MS put all their normal s/w on one disc and let you set it up as a distro, you could pick and choose what pieces to install. But in addition to choosing each item, there’s a price next to it (e.g. MS Word). When you’re finally done installing everything, you have to pay to use the programs you installed. They could do it like the activation/registration they do now, where it locks you out after a week if you don’t pay.
That way more people will be exposed to their s/w, you don’t have to go back to the store to buy Office later on, piracy might go down, and everyone’s happy. Barring the usual cracking of the disc and other bad stuff, MS could make more $$ because they don’t have to package as much s/w separately and people might be more inclined to try an app they might not know about.
It would probably never work but it’s an interesting idea to me.
Ok, a couple of problems:
OS’s of old are not best described by CP/M and its knockoffs.
I do believe it would be entirely possible to build a linux system with no shell. While many programs wouldn’t work. You’d write your startup scripts in c. And you’d load up X11 when you had everything you could run ready.
So, simply because an OS lacks a shell that’s easily accessible and commonly used doesn’t mean its graphics are built into the OS. I bet that if they wanted to they could release a text based Windows within a week. Oh wait, it’s called recovery console.
Microsoft is not guilty of having too many features in Windows. What it is guilty of is waiting till someone else popularizes an app before it implements the idea. If anything, they don’t have nearly enough features!
What the authors seems to really want is a modular Windows with an opt-in policy for all software.
All depends on what the Bigger is. Like Bigger Government, Bigger programs become harder to maintain, glutenous, and suffer change and adaptation problems. They also remove freedoms from those they ‘serve’ while making more and more demands.
So… no, Bigger does not mean Better.
MS’s focus should be on improving Windows and making it more efficient. In so doing, they will plug up holes and remove legacy functions people are rarely going to need let alone want. I slightly disagree with the authors idea that they should not Bundle, but bundled products should not be at the forefront of what makes Windows good. Bundled products are useful and desireable, but they should do the minimum of what they purport to do and be readily removed in favor of better programs.
Sure, MS wants to control the Desk Top, but people will always want things tailored to their individual needs, wants, and whims. Given the user base of Windows, that is impossible and making it broad enough to please most everybody makes it to big and mainenance heavy.