Virtues of Monoculture, Or Why Microsoft Wins
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."
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.
"People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
People feel overwhelmed and decide not to choose anything.
That is basic psych.
http://www.google.com/search?hl=en&q=too+much+cho
[Fuck Beta]
o0t!
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.
.NET languages
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
* 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.
I Browse at +4 Flamebait
Open Source Sysadmin
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.
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.
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
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.
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.
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.
I've fallen off your lawn, and I can't get up.
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.
"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 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.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
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.
;D
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
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.
How we know is more important than what we know.
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.
34486853790
Connection too slow for X forwarding? Try "ssh -CX user@host"
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.
Penny - plain text accounting