• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

[NEWS] Virtues of Monoculture, Or Why Microsoft Wins

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

Mr.Guvernment

Member
Joined
Feb 26, 2003
People always compare why Linux isnt competative with Windows in the desktop market.... is this the reason why?


+--------------------------------------------------------------------+
| Virtues of Monoculture, Or Why Microsoft Wins |
| from the nice-tools-in-the-cathedral dept. |
| posted by kdawson on Wednesday April 25, @00:17 (Programming) |
| http://it.slashdot.org/article.pl?sid=07/04/25/0050217 |
+--------------------------------------------------------------------+

[0]blackbearnh writes to ask, "Why does Microsoft win the development environment war so often, when we all know it's a lifetime lock-in to Windows? Perhaps it's because the [1]open source community offers too much choice." From the post: "Microsoft offers the certainty of no choices. Choice isn't always good, and the open source community sometimes offers far too many ways to skin the same cat, choices that are born more out of pride, ego, or stubbornness than a genuine need for two different paths. I won't point fingers, everyone knows examples... The reality is that there are good, practical reasons that drive people into the arms of the Redmond tool set, and we need to accept that as a fact and learn from it, rather than shake our fists and curse the darkness."

Discuss this story at:
http://it.slashdot.org/comments.pl?sid=07/04/25/0050217

Links:
0. http://www.onlamp.com/
1. http://www.oreillynet.com/onlamp/blog/2007/04/the_virtues_of_monoculture.html


http://www.oreillynet.com/onlamp/blog/2007/04/the_virtues_of_monoculture.html

The Virtues of Monoculture
Tuesday April 24, 2007 8:41AM
by James Turner in Opinion

I’m probably not saying anything that hasn’t been said before here, but I thought I’d share a few thoughts on why people seem to be drawn to the Microsoft Way. I recently did something at the ‘day job’ that I’ve thought about doing for a long time, but never quite worked up the steam to follow through on, I signed up to participate in a a Microsoft-centric project, and to learn .NET.

I have made abortive stabs in the past to learn to code in the Microsoft Universe. I made a stab back in the bad old COM days, but the number of hoops I was being asked to jump through was more than I wanted to bite off at that time. Since then, I’ve carried that bad taste in my mouth, and resisted adding any Microsoft skill sets to my repertoire, even though it was sometimes a gap in my resume.

I’ve worked frequently in environments where there was the one Microsoft Guy, the evangelist who would constantly tell you how much easier it would have been in .NET. I’ve written them off as Kool-Aid drinking Gates worshipers. But, at the end of the day, I felt that if I was going to criticize them, I really needed to understand where they were coming from. Know thy enemy, and all that.

I spent last week learning in order C#, .NET and VSTO (that’s Visual Studio Toolkit for Office, if you’re not familiar with Microsoft’s alphabet soup.) I used the O’Reilly ‘Learning C#’ book, and did something I rarely do, went through it pretty methodically (at least the first half or so.)

Guess what? Microsoft has a pretty good development suite on their hands. To be honest, C# is largely what I’d do if I could rewrite Java from scratch with no concerns for backward compatibility. It has a couple of really cool features, like the virtual, override and new keywords that let you specify what should happen when you cast a class to it’s base class and then call a method on it that’s defined in both.

Visual Studio is a slick tool that really does let you bang out applications (and with VSTO, plug ins for Office) is very little time. ADO.NET is no worse then JDBC, and is pretty seamlessly integrated into Visual Studio. I was able, by the end of the week, to develop both stand-alone applications and Office plug ins that could talk to back-end databases, having written very little code. From what I’ve seen, ASP.NET does the same for MVC web applications.

So what’s good about a monoculture, and why does Microsoft win so often when people make a decision about platforms? Largely because what the open source community sees as a strength, people trying to get a job done in the real world see as a weakness. We celebrate the diversity of choices available to solve a problem and call it freedom. IT managers and CIOs look at it and call it chaos, confusion and uncertainty.

Should I use iBatis or Hibernate? XFire or AXIS? Perl, PHP or Ruby? Debian, Fedora, Ubuntu or Suse? Make the wrong decision, and you can waste a ton of time, as we found out on a recent project when we wasted a week try to make AXIS2 work for a web service project, only to find out that XFire was the right choice.

For the Microsoft Guy, no such confusion. You use ADO.NET, ASP.NET, C# and Windows. They all work, they’re all well documented from the perspective of a developer’s needs, with nary a disparaging ‘go look at the source’ blow-off. Every time I thought I was going to be stuck, there were a dozen articles explaining how to do exactly what I needed to do, with sample code that was up to date with the versions of the software I was using, and that actually related to the problem I was trying to solve.

Microsoft offers the certainty of no choices. Choice isn’t always good, and the open source community sometimes offers far too many ways to skin the same cat, choices that are born more out of pride, ego or stubbornness than a genuine need for two different paths. I won’t point fingers, everyone knows examples.

Now, least you think I’ve been turned to the Dark Side, there is one BIG problem with a monoculture, which is that you’ve essentially sold your soul for the stability of a clearcut set of choices. You go down the .NET path, you’re pretty much stuck there forever, Mono not withstanding. You’re always going to be running on a Windows platform. You got the pretty gold ring, but Sauron gets to pull your strings and make you dance. For many companies, ones that don’t need to worry about deploying into heterogeneous environments, that’s a deal they’re more than willing to make.

The takeaway I get from this entire line of reasoning is this: that somehow, someway, we need to start doing some winnowing. The 700 lb clue-bat has to be available to pound on the head of those who fork for no better reason than a disagreement over a license, or who should get to call the shots. When we hear about two or more projects that answer the same question, we should be asking ourself “Why don’t they pool their effort and produce one really good solution?”, rather than celebrating diversity for diversity’s sake alone.

Do we really need Ruby on Rails AND Groovy on Grails? When the April Fools’ announcement of Python on Planes came out, it took me a second to realize it was a hoax, because it’s just the kind of ‘doing something for the sake of doing it’ effort that fractionalizes the OSS community. There’s no way to stop people from starting new duplicative projects, nor should we want to, but please God, do we have to actively encourage it?

We spend a lot of time complaining about all the evil ways Microsoft uses to foist themselves on the world. By doing this, we automatically remove any blame that we ourselves may bear for their successes and our failures. The reality is that there are good, practical reasons that drive people into the arms of the Redmond tool set, and we need to accept that as a fact and learn from it, rather than shake our fists and curse the darkness. For we have met the enemy, and it is us, not Microsoft, at least not all the time…
 
I agree with his views, completely. There are many questions, many "Why?" questions, to be exact, that one is stabbed with continually when learning or adapting to a new environment. When I was learning DOS in 1983, and Windows 3.1 in 1994, I was constantly asking myself "Why isn't there a better way of handling IRQ's?" Why am I limited to 640K base memory? Why must I make a boot floppy? ETC ETC ETC.
After a while, and when Microsoft improved their OS products, I had less and less "Why?" questions, and actually began to embrace the monoculture and the progress it brought. By the time XP sp2 came out, I had no more questions...I think they reached a pinnacle there. (Vista brings a whole new boatload of questions, but that's another story)
When I first started tinkering with Linux, all those pesky "Why?" questions began resurfacing, as they invariably do, when learning or adapting to a new environment. I am still nagged by many of these questions.
"Why so many choices?"
"Why not combine efforts?"
"Why reinvent the wheel?"
"Why so many egos?"
I've got time.
 
"Why not combine efforts?"


This is my issue with Linux and i guess some showing of the snobest elite crowd, everyone thinks that can do it better so they make their own versions instead of combining to take on the man.


How many Linux varations are now availible for anyone to download?
 
I like the Linux diversity but am gaining a greater appreciation for stability and continuity. FreedBSD looks to have the most that one could ask for, in both regards.

Mr.Guvernment said:
How many Linux varations are now availible for anyone to download?


100+ and counting,
 
ihrsetrdr said:
100+ and counting,

Searching Distrowatch gives me 358 active distro's.
I think it's a great thing.. I got hooked on Open Source and Linux for the choice (among other things) and not for one bloated distro like Ubuntu to "take on the man", not for me thanks.. Great the Ubuntu's are here but I need the freedom to grab some other distro.
And combining efforts is happening alover the place, especially on the developer-level.

We spend a lot of time complaining about all the evil ways Microsoft uses to foist themselves on the world. By doing this, we automatically remove any blame that we ourselves may bear for their successes and our failures. The reality is that there are good, practical reasons that drive people into the arms of the Redmond tool set, and we need to accept that as a fact and learn from it, rather than shake our fists and curse the darkness. For we have met the enemy, and it is us, not Microsoft, at least not all the time…

I couldn't disagree more..
Windows' success is not based on technical merit (or the certainty of no choice).
I (and most Linuxers I know) believe that most Linuxes are better suited than Windows for most tasks, or would be if not for Windows' stranglehold on the market, It's the stranglehold that's drives people into the arms of Redmond!!

Windows is everywhere because Windows was everywhere last year, people are reluctent to replace there "comfortable" Windows with IReallyHaveToUseTheKeyboard?-Linux.
Windows is part of culture in a large part of the world it seems.

And most importantly Redmond has big deals with the major PC sellers.
That makes Linux unable to compete with Windows on equal footing, that's the issue really..
 
Last edited:
Should I use iBatis or Hibernate? XFire or AXIS? Perl, PHP or Ruby? Debian, Fedora, Ubuntu or Suse? Make the wrong decision, and you can waste a ton of time, as we found out on a recent project when we wasted a week try to make AXIS2 work for a web service project, only to find out that XFire was the right choice.

In my local supermarket there are probably 10 brands of coffee.. Should I complain about this at the storemanager?
I'm a developer on Windows and have to make these kind of choices everyday, should I go .NET? Or win32? What language should I use? What db-engine should I use? You have any idea how many DB-engines there are for Windows?

The week "wasted" on AXIS could have been one day of searching info about the differences between AXIS and XFire and making the right choice.
 
Last edited:
The article definitely has some valid points but I think it's extremely tough to point a finger at one specific reason for why MS is still king. I think that the main reason why MS wins is simply because its a name that the majority of people know and trust, especially the corporate head-hanchos. I think Linux/OSS simply needs better marketing. I think Apple is a prime example of how the right marketing campaign can turn the tables.

As for having too many options, I think that can hurt the quality of the products by spreading the number of programmers available to work on them too thin. I think multi-core processors are a good analogy for this. For some things, multi-core/multi-processor boxes are great, and can continue to scale to continue adding benefit. Sometimes it is good to have several different single core machines. So, like the author said, choice is not always good, especially when time is being spent developing projects that are essentially accomplishing the same thing without any reason for the split between them.

I think that the division between gnome and kde is one such thing that is great for customization, but is really hindering Linux/BSD/OSS from becoming mainstream. I think that the man hours should be spent developing one great DE that can rival Windows and OS X in usability and looks, so that Linux can be marketed properly to the masses.
 
I think Linux one big problem is hardware support. I know I love using Linux but I wouldn't slap even Ubuntu on a friends computer and expect them not to run into problems shorty when their 5.1 speakers are playing 2.1 and they're webcam they bought doesn't work. I think thats what really holds Linux back.....it's not the software, you could load up firefox, and thunderbird, and open office and skype and most people would feel fine. Look at Apple converting people to their side....average joe user doesn't care that he's using Safari now instead of IE....but Apple's hardware is gonna work with OSX...it has the driver support.

BTW loved the Sauron comment...I'm gonna have to use that same day.
 
Yes, Microsoft wins exactly for the reasons you state and probably has nothing to do with the fact that they are a monopoly.

Because there is no suitable corporation to compare them to, you get to just compare them with open source, which is not always developed for commercial purposes or driven by wads of cash.
 
Last edited:
The only serious threat to Microsoft on the desktop is Mac OS X. Linux, as it stands now, cannot possibly hope to dislodge Windows on the desktop unless Microsoft really ****es people off, and if they do, most people will probably just go buy a Mac.

Vista is the best thing that ever happened to OS X. :)

Linux could give Microsoft a run for their money in the server market. It remains to be seen.
 
The author does make a great point, diversity is one of GNU/Linux's greatest strengths, and its greatest weakness.

For every project in Linux there are competing projects and standards which sometimes increase quality, and sometimes just confuse things. I think the KDE/Gnome split is one that is huge because there not only are people split on developing the desktop environments, there are an entire series of applications written for each one and the quality isn't uniform.

The Compiz/Beryl split was another one that upset me. It seems like they split over personal disagreements and instead of pooling resources towards developing the best 3D desktop environment (it is far superior to both Vista and OSX imho), they divide over something so trivial. I am glad that they are merging though, both crews had great ideas. Now we only have to worry about aiglx vs glx.

As someone who has programmed in both VS/.NET and with GNU tools (g++/gcj/Eclipse/make/ant), I must say that MS's Visual Studio.NET offering is quite impressive. Creating a GUI is entirely a graphical process, the libraries offered by MSDN are vast, and incredibly well documented. I could create a basic Web browser or IM client (we did have to create an chat client for one of my classes) in C# .NET almost as easily as I could create a doubly linked list implementation in C++. Visual Studio itself is much better than Eclipse, KDevelop and other IDE's I have used in Linux. For me Linux programming is best done with VIM and ant/make files, which for sure is a very efficient environment for writing basic command line programs, but for complicated GUI based programs, VS.NET cannot be beat.

For Linux to take MS's marketshare they need to unify. KDE and Gnome developers need to develop a standard development kit (perhaps based off mono?) so that programs work 100% on both without 1990 looking graphics. There needs to be a de facto package manager with global repositories. The community should make a final choice between glx and aiglx (preferably aiglx imho) and Beryl/Compiz needs to finish merging.
 
Captain Newbie said:
The only serious threat to Microsoft on the desktop is Mac OS X
With OS X being on intel macs...they could so easily just make OS X for all x86 and go after Windows...I even wondered if Apple was just waiting to see how Vista went over...which was not good...if they ever wanted to pounce now would be the time, but I think Apple is afraid to give up their hardware monopoly for the platform...they make a lot of money off hardware.

The difference, when Vista was about to release I read a ton of reviews and looked at it objectively and it turns out, I will hold off from Vista as long as possible....if OS X came out for x86 I would be running to the store tomorrow. As it stands I've been able to stay in Linux longer and longer before going to Windows...if it wasn't for the fact I can't write to NTFS windows would be taking very long breaks for me.
 
blueswitch said:
With OS X being on intel macs...they could so easily just make OS X for all x86 and go after Windows...I even wondered if Apple was just waiting to see how Vista went over...which was not good...if they ever wanted to pounce now would be the time, but I think Apple is afraid to give up their hardware monopoly for the platform...they make a lot of money off hardware.

The difference, when Vista was about to release I read a ton of reviews and looked at it objectively and it turns out, I will hold off from Vista as long as possible....if OS X came out for x86 I would be running to the store tomorrow. As it stands I've been able to stay in Linux longer and longer before going to Windows...if it wasn't for the fact I can't write to NTFS windows would be taking very long breaks for me.

No, it wouldn't be easy to make OSX for all X86 machines. Right now Apple only has to support a tiny subset of hardware with OSX and can ensure that driver quality and support is there. Expanding it to the full range of crap that MS has to deal with like Creative, SiS, Via, etc. would not be easy, and would probably do a lot to degrade the golden aura of OSX in the minds of the people.
 
OSX on all x86 = Windows

crashes, instabilities , security issues, it would no longer be OSX and all it's proclaimed glory of what it can do over Windows, it would then become another version of *nix on the market, one of 358 to choose from.
 
It would still be more stable and more secure because it's based on BSD, which is an incredibly well written, stable, and secure OS. Getting it to work with all that hardware though would be a pain, and drivers for everything might be buggier than is currently the case.

Still, anything based on BSD is going to be more stable and secure than anything based on a windows kernel. It's like if one guy has to build a house out of titanium and another has to build it out of cheese puffs, and they have to see which stands up better against artillery fire. It's just not a fair fight.

If I wanted the most stable generally available OS, I'd pick a BSD based system over Linux even (not Mac OS, but probably OpenBSD).
 
I haven't had any stability issues with Windows XP in years. Most people's concept of "Windows stability issues" is based on Win98 and earlier, and anecdotal evidence from incompetent PC users.
 
Microsoft wins because they took the initiative and turned it all into a big business, and thus enjoys the power that every "big dog" has. If it were not for MS's "big dog" power,Windows(XP) probably wouldn't have any better hardware support than a 'typical' Linux distro. Windows-on-every-desktop has come to pass because of MS's ability to arm-twist the big retail computer manufacturers.
 
Back