Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming Microsoft IT Technology

Virtues of Monoculture, Or Why Microsoft Wins 703

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 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."
This discussion has been archived. No new comments can be posted.

Virtues of Monoculture, Or Why Microsoft Wins

Comments Filter:
  • de facto standards (Score:3, Interesting)

    by swordgeek ( 112599 ) on Wednesday April 25, 2007 @12:25AM (#18865873) Journal
    What the monopoly says, goes. They define a standard. Because they're MS, they define a standard that's different and incompatible with official standards. You either go with the market, or you swim upstream. This is about as clever as saying, "the reason red is red is because it's not yellow."

    Nothing to see here. Market forces and ease of use win over features, stability, or quality.
  • Re:+5 (Obvious) (Score:4, Interesting)

    by TubeSteak ( 669689 ) on Wednesday April 25, 2007 @12:27AM (#18865899) Journal

    The very nature of Open Source allows for such diversity that it will obviously be split ito smaller groups of enthusiasts. It's the nature of the beast.
    To many choices are demotivating.
    People feel overwhelmed and decide not to choose anything.
    That is basic psych.

    http://www.google.com/search?hl=en&q=too+much+choi ce [google.com]
  • by xenocide2 ( 231786 ) on Wednesday April 25, 2007 @12:32AM (#18865959) Homepage
    There's plenty of choice on Windows. The only difference is that these choices involve paying money for things whose worth you can't evaluate until you've used them for longer than a month. Branding helps tremendously in such a situation, as does bundling, both of which MS has in spades.

    Some examples of choices developers have on windows platforms:
    * IDEs - visual studio, eclipse, netbeans, dev-c++, codewarrior, just to name a few I've used
    * The various .NET languages
    * Databases
    * Webservers, IIS, apache, or something else?
    * antivirus, Vista tried pretty hard to end all of these though.

    If you're just moaning about how Microsoft has a large vertically integrated set of tools, well, there's Java. Nobody does this, because its stupid and they have the choice not to.
  • Lifetime Lock-in? (Score:3, Interesting)

    by MrSteveSD ( 801820 ) on Wednesday April 25, 2007 @12:51AM (#18866129)

    Why does Microsoft win the development environment war so often, when we all know it's a lifetime lock-in


    It's not a lifetime lock-in when they discontinue your entire development environment and language. Yep, by discontinuing the VB6 language they saved us from that terrible lock-in. Now we are free to re-type those millions of lines of code (and years of effort) in another language on any platform we like. How thoughtful of them.
  • Maybe (Score:3, Interesting)

    by Timesprout ( 579035 ) on Wednesday April 25, 2007 @12:55AM (#18866165)
    Just maybe its that until quite recently the Microsoft development environment was vastly superior to anything being offered by the Open Source community. There were quality development and debugging environments from MS and Borland. More dev editors than you could shake a stick at. There was easy integration with multiple databases and it was easy to develop slick front ends to this data. There was tooling availabe for easy project management and application testing.

    Maybe Microsoft actually copped on to the fact that businesses wanted tools to build the apps they needed while the Open Source community were patting themselves on the back about how cool and fantastically leet they were for having text editors and shell scripts.

    Whats interesting is that the two current leading Java Open Source IDEs (Eclipse and Netbeans) are both tools which started out life intended as commercial offerings but were donated to the community by IBM and SUN.
  • Re:FAQ item (Score:5, Interesting)

    by mrsteveman1 ( 1010381 ) on Wednesday April 25, 2007 @01:28AM (#18866389)
    No you shouldn't be flamed, you haven't said anything incorrect.

    The difference i think is management, which Microsoft has, however flawed, and open source as a general rule, does not. Even within single projects there is useless argument, and forks for ridiculous reasons. In most cases, the required action is for one party to be kicked in the ass, hard. There are RARE cases where the majority of the community sees something going wrong and forks, such is the case with X.org.

    Then you have cases like gnome and kde, which each develop totally redundant, sometimes useless ways to do the same thing, sometimes neither one does it well either.

    Over and over again i see MAJOR parts of the system literally missing, like a device manager, while other parts, like file managers or office applications (openoffice, gnome office, koffice) are developed 3 or 4 times over in parallel by groups who either refuse to use code from another group simply because it has a G- or a K- in front of its name, or neglect to even look around to see if someone has already coded a similar app that could be used and improved.

    In all honesty, gnome and kde have driven me away from linux for everything but core server use, and my next laptop will be a Macbook simply because i'm tired of it all.
  • by QueePWNzor ( 1044224 ) on Wednesday April 25, 2007 @01:45AM (#18866501) Journal
    I'll admit, the difference between Kdevelop (KDE's IDE) and Anjuta (arguably the GNOME alternative) are trivial but too often annoying in reality. But there frankly is a reason why I, among others use Kdevelop: It simply looks better than everything else in KDE. Now, of course, because it is linked in deeply with KDE as a whole, unless you upgrade every time a new KDE release comes out, the development libraries&junk may fall behind. I upgrade about every 6-8 months, but I see how, if somebody didn't, that could be a huge pain. But Anjuta, though it uses GNOME/GTK+ libraries (GTK+ is used for almost all programs, but the GNOME variants can cause trouble), it isn't so deeply linked in. So this deepens the debate, especially since the two environments go forward at often random paces. When I started using GNU/Linux, I got frustrated at this, and it caused me to use my Windows IDE, Microsoft Visual C++ more often. Because it has its own formats for organization, I started becoming more dependent on it as I added more headers and crap. That is why Kdevelop gives Microsoft market-share. I think, but am not sure that KDE is the most common desktop environment. Ubuntu may have altered the balance, though.
  • by fyngyrz ( 762201 ) * on Wednesday April 25, 2007 @01:48AM (#18866537) Homepage Journal

    Oh, it's helpful, all right. For instance, the only reason we've not released a port to linux - a free version, of course, we'd like to give back to the community - is because there is no standard GUI layer. It's a hodgepodge of these widgets and those widgets, this license and that license (really meaning, these liabilities and those liabilities.) Windows provides all that. Free. Built in. Plus a large market. So we developed for them. When Windows became intolerable because of activation DRM, we moved to OSX. Nice GUI layer, free, built-in. development proceeds apace, while linux runs servers. Others may have other reasons, but those are ours. The day the linux core gets BUILT-IN windowing and graphics, and I do NOT mean just xwindows or xwindows plus yet another sometimes-there and restrictively licensed widget set, is the day we make a port that we will release to the community. The community can then, of course, use our stuff or not as they see fit - but as is, it's not a choice. That's been the unanimous decision of the linux community: no coherence.

    I want to say one more thing. The existence of a standard GUI layer in NO way means that you can't still have everything you have now. You'd just have one more thing, something people could write to as a default, even just as a fall-back.

    That's my 2 cents.

  • by melted ( 227442 ) on Wednesday April 25, 2007 @02:09AM (#18866683) Homepage
    It may be interesting to some that a lot of folks at MSFT do not use the very IDEs their company is so good at. A lot of people use Notepad, Notepad2, Ultra Edit, EMACS, vi, Source Insight. Hardly anyone uses Visual Studio for builds in particular on anything but prototypes. The cause of this is the build system that majority of teams use. It's sort of makefile based (but not quite), and it makes using Visual Studio impractical because things can only be built from the command line.

    So folks who talk about the advantage that a good IDE gives you as far as productivity most likely have never worked on anything bigger than a few hundred files in a project.

    That said, there's a system now that could change all of that. It's called MSBuild and it ships with Visual Studio. For anyone who does command line builds and whose codebase is mostly managed code, I highly recommend looking into it.
  • by Osty ( 16825 ) on Wednesday April 25, 2007 @02:20AM (#18866763)

    On an unrelated note, I wasn't aware the .NET SDK was free. Interesting, but I can't see the justification in using F# over Ocaml. Of course, if you're using .NET you might as well get an MSDN kit and visual studio, so I can see where they're going with it.

    .NET SDK 2.0 [microsoft.com]. Also, as I mentioned, Visual Studio Express [microsoft.com] products are available for free for many different uses (app development, web development, database development, game development, etc). If you're developing software professionally, you probably would want to spring for a full Visual Studio product, but for individuals and small projects the Express SKUs work great. XNA's Game Studio Express is built on top of Visual C# Express, for example, and allows you to build games for Windows and/or Xbox 360.

    As for why you would use F# instead of OCAML, IronPython instead of Python, Ruby.NET instead of Ruby, etc, is for interoperability. Because the languages are implemented to compile down to IL (.NET's Intermediate Language), they can be used with any other .NET language. For most people it's just a novelty, but it's still cool in a geeky way. BTW, this is no different than building compilers to target languages to the Java VM [robert-tolksdorf.de], like Jython [sourceforge.net]. Why would you use Jython rather than Python? Because it can more easily interact with Java components and other languages compiled to the Java VM. Not a big deal if you're only doing Python work, but invaluable if parts of your product are written in Java and it makes sense to build other portions with Python.

  • Why? Are non-Ubuntu users unable to run GTK applications?
  • Preposterous. (Score:3, Interesting)

    by Inoshiro ( 71693 ) on Wednesday April 25, 2007 @05:50AM (#18867863) Homepage
    "Every job has its unpleasant parts, and while a F/OSS coder can skip them a commercial coder can not; if the spec calls for an embedded testing code, for example, or Doxygen comments, you put it in."

    The percentage of non-FOSS which is documented and the percentage of FOSS which is documented are pretty similar in my experience. Perhaps you are unaware of the incredible 95% of software which is developed commercially, but which is not sold in a shrink-wrapped box in Circuit City. Many companies have internal IT departments which couldn't code their way out of a paper bag in VB, let alone document it. Go read the daily WTF [worsethanfailure.com] if you think I'm lying.

    "s/he might be wrong but at least the product is consistent, and not designed by a committee as it sometimes happens."

    Andrew Morton. That's a name I can think of when I think of someone with vision for a particular FOSS project which are willing to say when things (don't) match their vision. Linus Torvalds also fits this bill. There are similar names in other projects, but I'm most familiar with the kernel.

    "These clones haven't been weeded out by the market, and so many of them are not viable - but they are out there,"

    The weeding doesn't occur at the store level, it occurs at the reputation level. All FOSS stuff is staked on reputation. If you have a high reputation, you are going to be used more and included in more distributions. If you are a crappy app, you'll never see a real user base. Since the programmer is programming for ego (see the somewhat inaccurate women/baby analogy), the programmer should be motivated to produce better work which becomes more popular. The KDE programmers sure seem to have worked to make sure that KDE is useful. The Gnome programmers have also worked towards some mindshare. Given how people used to choose window managers, but now choose desktop environments, I'd say that these programmers have changed the game wrt GUI interfaces on Linux. That sounds much like a market shift, but with eyeballs and hearts instead of money.

    "Effort dispersed, spent on competing projects is ultimately wasted."

    Oh, I'm sorry, I guess you're just a troll. Or you simply don't understand what FOSS is.
  • Definitely (Score:3, Interesting)

    by NekoXP ( 67564 ) on Wednesday April 25, 2007 @06:02AM (#18867913) Homepage
    Simply put, he's right in a way. After all, developing software for an environment you choose, means anyone who didn't choose your environment who wants to run your software has to switch, or install more software, and deal with the problems possibly associated with such a thing.

    Remember when KDE, GNOME, Xfce and Enlightenment didn't share a desktop API? Look now at how Enlightenment reinvents everything using it's own special libraries? While Enlightenment has some distinct advantages over the way the others are designed, it is a DIFFERENT system. Want to install a GNOME core application on KDE? Well, you have to drag in most of GNOME, still. The same in reverse. Install Enlightenment tools on top? Well you have to drag in the rest of the E17 framework.

    Install X on my system, and it still pulls in 5 different sound daemons.. yikes, and yikes again. Xine, MPlayer and GStreamer/Totem too. They all use the same libraries after all, but do I need 3 different ways to play a movie?

    I personally prefer GNOME and Xfce if only because they use the same GTK toolkit - however I personally loathe GTK and the GTK API. I don't want to even get started in Enlightenment.

    So, when you sit down and use Windows, what do you do? Well, you're pretty much stuck using Windows. And for all intents and purposes, there is a strict set of toolkits and APIs they provide for you (DLL hell wipes that off the map though). There is no "which API do I use to open a window and add a button" if you are using VisualC++ and reading the documentation, it will pretty much railroad you into one choice. But there ARE other choices.. they are just less obvious and less relevant.

    I think this is why I like the concept of RAD stuff like Ruby On Rails, however I do hate Ruby, and Python, and I never got into Perl in a big way, and while I'm stuck with PHP, it's because it's closer to C++, which I absolutely love. If I had a choice I'd be coding everything in C++, with a single toolkit, but unfortunately because everyone else makes other choices, I can't.

    Does my life deserve to be made this difficult by virtue of the freedom of choice? Probably ;D
  • When I did some (about 1 hours worth) research into this, I came to the conclusion that the only 2 obvious choices were wxWidgets and GTK (perhaps SDL if we are talking games).

    Seeing as both are available on windows/mac/linux, its really hard to understand why you are saying that there are too many choices. There are two, and they port to all linux distros as well as Win/Mac.
  • Re:Thanks, we know (Score:3, Interesting)

    by QuantumG ( 50515 ) <qg@biodome.org> on Wednesday April 25, 2007 @07:42AM (#18868343) Homepage Journal
    You aint just whistlin' dixie brother. I'm an experienced Open Source developer (and professional software engineer) and I just refuse to touch autoconf, etc. As for rpm/deb packaging? Someone else, do it for me, please.
  • by SQLGuru ( 980662 ) on Wednesday April 25, 2007 @07:56AM (#18868447) Homepage Journal
    Honestly, though. How many non-/. reading, mainstream users are going to install another widget system on their computer? Few or None. Even if you port your free application to a "Linuxy" version of Windows or OSX, no one will come. If you want my mom to use your program, it better come on CD and run on Windows. If you want my dad to run it, it better come on CD and run on Windows. My sister, well, she'll download it, but it better run on Windows.

    Back to the original question, the reason that so many companies choose the Windows development? It just works. I can install MS Visual Studio, connect to MS SQL Server, pull in web services off of IIS. And it just works. I call developing in a Microsoft environment "pointy-clicky-draggy-droppy". You don't really have to think about too many config files or whether something works together. It may be dumbed down, but as a developer, I don't want to really have to think about configuration, I want to think about code.

    My primary development environment right now is Eclipse and Java. I hate it. Why? Too many choices and no way to know which is the right choice. I have to deal with this configuration and that configuration and a few .properties files thrown in, too. I spend about six hours each week (sometimes more) fighting the environment I work in because someone made a choice that turns out not to have been the best one (for us - I'm sure for someone else it was the perfect choice).

    Layne
  • by TheRaven64 ( 641858 ) on Wednesday April 25, 2007 @07:56AM (#18868451) Journal

    Mac users don't complain that FireFox doesn't look like a real OS X app, they complain that it doesn't feel like one. If you want to see what I mean, try double-clicking on the address bar, or using any of the keyboard shortcuts for moving around it that work in every single text box on the system except FireFox. Qt apps tend to be just as bad, which is why I avoid them like the plague.

    A lot of the reason OS X is easy to use is motor memory. Applications all use the same shortcuts, so your brain thinks 'perform this high-level action' and then your fingers do it without any more input from your high-level brain functions. There is much less thinking 'what key do I press to do this?' than I've found on any other platform. Last time I was using a *NIX desktop, I had three different applications open with three different ways of skipping to the end of the line in a text box (not counting Vim, because I get enough visual clues to expect terminal applications to behave differently).

    the Apple software doesn't really seem to have that much of a unified look anyway
    You're probably not consciously aware of this, but Apple software has three distinct looks, with three subtly different behaviours. This gives you a subconscious visual clue, which allows you to expect the correct behaviour, often without thinking about it. In spite of this, core behaviour is the same across applications. One of the worst design decisions the major Linux distros made was to theme KDE and GNOME applications so that they looked the same. They don't behave the same, since KDE and GNOME have different UI philosophies, and so you immediately destroy the visual clue that they will behave differently.
  • by jimstapleton ( 999106 ) on Wednesday April 25, 2007 @08:12AM (#18868577) Journal
    I thought Apple had fewer software options for most tasks than Windows, at least it has always seemed that way to me.

    Likewise, BSD has fewer software options for most tasks than Linux since it has less development, so why does Linux take the OSS business market instead of BSD?

    Note: I don't intend this as a flame at all, I like one of the OSes that this says should do good based on the logic, and I don't like the other. I like one of the OSes that looks like it should be bad in this comparison, and I don't like the other. I'm just saying the arguments logic doesn't seem to add up to me.
  • by Anonymous Coward on Wednesday April 25, 2007 @09:11AM (#18869113)

    Gnu/Linux has too many divergent ways to display graphical things.
    This isn't 1996 any more. There are two choices: GTK or QT. wxWidgets wraps around GTK. QT and wxWidgets have the advantage of supporting all modern platforms with the same toolkit. So, what's the problem?

    No one develops new applications for Motif, X11 (directly), Tk, etc any more.

    Windows and OSX each have 1 way and there's no choice.
    You obviously haven't used OS X. There are two toolkits: Cocoa and Carbon. QT and wxWidgets wrap around Cocoa.

    This is one thing that annoys me about OS X. When I'm using, iTunes, MS Office (I don't like it, but OpenOffice sucks hard on OS X, and yes I'm aware of NeoOffice/J), Camino, Eclipse, etc all have different themes and feels. When I'm running Gnome, everything except for Firefox integrates perfectly and looks the same.

    You only have to test with a single windowing system on each of those.
    Unless you're doing something stupid like rolling your own ui toolkit, it will work equally well with Gnome, KDE, and XFCE.

    Gnu/Linux has 1 major problem left, and this is it. I have no idea how the issue will be resolved, though. I'm a KDE zealot myself, and I never want to give it up, mainly for the extras it provides like KIO slaves. (The FISH protocol is a god-send.)
    I really don't see why it's an issue. 8 years ago I'd agree, but not any more.

    Really, it's as simple as:

    Linux only: GTK or QT
    Multi Platform: wxWidgets or QT.
  • by massysett ( 910130 ) on Wednesday April 25, 2007 @09:28AM (#18869329) Homepage
    Linux has lots of monocultures--pieces of software that have become mostly standard:

    * the Linux kernel (rather than, say, the Hurd)
    * X.org (rather than XFree86, which is now dead)
    * bash (rather than ksh, csh, tcsh, or my favorite, fish)
    * Apache (I had to look at Wikipedia to see if alternatives even exist)
    * MythTV (any other Linux PVRs?)
    * GCC, and for that matter, most GNU tools

    Perhaps usage standardizes on one piece of software when that benefits people, but usage fragments when there are benefits to choice. Doesn't seem like a problem.
  • by Man On Pink Corner ( 1089867 ) on Wednesday April 25, 2007 @09:39AM (#18869489)
    Provide the source code under an open license. It's how we want it to happen.

    It's not, however, how USERS want it to happen. Hint: if installing your program requires me to run a compiler, I'm just going to stikc with the closed-source Windows version, and maybe get some actual work done that week.
  • by 99BottlesOfBeerInMyF ( 813746 ) on Wednesday April 25, 2007 @10:32AM (#18870275)

    Then users demanding "Linux" applications are demanding something that will never happen since you can not write an application to a kernel!

    The truth of the matter is, you can easily write a "Linux" application that runs on pretty much all major Linux distributions.

    I'm not trolling, I'm no shill and I definitely do not work for Microsoft.. but I just really believe that "too" much choice sucks.

    I disagree. The real problems we have with many choices are all because we have a monoculture. Because there is one dominant OS and that OS is intentionally incompatible with other things, fragmentation is an issue. If we had four OS's sharing 75% of the market and another 10 OS's sharing the rest we'd have significant investment in all the major ones and in technologies that allow for good cross-platform development and portable applications so it did not matter which OS you are running as much, since it would preclude your using a given application.

    I would have a much easier time choosing between 2-3 carpet types and 10-20 colors than the amazing number of styles/options out there (visit the carpet section next time you're at home depot and you'll know what I'm talking about).

    I picked out some carpet a month ago. Like any other decision, I had criteria. It needed to go with two different wall colors and needed to have a pattern to hide the stuff tracked in from outside and the garage. If there were only 10-20 colors, I would have had a carpet that was less suited to my needs than what I did get, since I doubt one of these 20 colors would have been a combination of colors complementary to my walls along with a dark and a neutral to help hide dirt and the like. If you don't like having choices, then just pick from a limited selection from one company or collection. I don't see why this is hard. Variety and competition breed innovation and improvement and allow for a better fit to a given task. It is only when we have a monoculture that the problems appear and one vendor can intentionally make sure you have no choices by making sure floors are either compatible with their carpet or are weird and non-standard ones that do not work with anything other than one specialty floor.

    The choice is even worse for software companies that put money or even the whole company on the line when they make a platform choice.

    So it is better for a company to have only one or two choices, than many choices to find the best fit for their needs? I'm not sure I understand that argument at all.

    If you happen to know something about carpet, or where I can get more/good information please post it. No pets, one year old and an average budget. Thanks in advance :)

    I don't know a lot about carpet, but I recently did some research and consulted someone who knew a whole lot. I'm happy with the result. Consider what it will look like in two years given the type of traffic you have. Consider changing trends and what will quickly look dated. Spend the extra money for thick, high quality padding underneath the carpet as that makes a whole lot more difference for the price differential than the cost difference between the carpets themselves.

Without life, Biology itself would be impossible.

Working...