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."
This really needs to be put in a FAQ somewhere.
Does this author have a valid point? Probably
Is this point, and any relevant discussion, different from the last time this was brought up a few months ago?
Probably not.
As in - Why not limit the number of websites? Too much choice!
http://stephan.sugarmotor.org
Interestingly enough, I had this arguement today with a co-worker. Choice and flexibility afforded by open source and more importantly open standards will pay dividends for companies that think long term. The shrink wrapped mono-culture beat can be the less expensive option in the short term (no retraining, prepackaged apps with ready training and documentation, cheap labor). But, open with lots of choices wins in the long run every time because it gives ownership of IT to the companies that use it instead of the companies the produce it. Freedom and choice may be the difficult choice in a short-term return corportate culture, but the companies that embrace open standards will be the long term winners.
This article assumes that open source developers are aiming at becoming Microsoft like. Maybe they're just in it to make good software: not a profit, not make money for shareholders, or anything that that Microsoft is obviously aiming for. And the article is also using a very narrow definition of "win", one which I'm not sure is possible for OSS to attain.
"Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
The problem isn't the choice, it's the follow-through. Open Source software maintains its momentum as long as there is an itch to scratch. As soon as that itch is satisfied, the work stops. Even if the code is unsuitable for your average joe. Technically, this is where the commercial distributions are supposed to pick up the slack and do the rest of the work. You know, offer an integrated Linux environment. Something to make all that money we're throwing at them worth something. But they don't. And I have no idea why.
:-/
Perhaps the most telling event was when I got a copy of Sun's Java Desktop System. It was a complete SUSE-based distro with Sun's unified desktop on top of it. I forget what the exact problem was, but in order to change a *BASIC* system setting, the instructions required that I directly edit a system file.
Excuse me?
This little gaffe was repeated by Mandrake with its command-line audio setup. RedHat with its inability to automatically handle its own damn package format. So on and so forth. I forget how many times integrated tools should have existed, and... well... didn't. I won't even get into the "broken by design" GUI choices of GNOME.
Now Ubuntu has been slowly trying to push this back; to make Linux a bit more user-friendly. But it's just one distro among many. There needs to be a concerted effort from all companies that SELL Linux. They need to give as good of an experience as they can possibly give. Simply repackaging the same software with a new GUI theme isn't going to cut it. They need to actually spend some money on covering the gaps that the unpaid community isn't going to cover. (I mean, let's be reasonable. They're not getting paid to develop a boring dialog and test flipping the switch 300 different ways.)
The development tools themselves are fine. In fact, Java is pretty well covered by Eclipse and Netbeans. If Linux distros make more of an effort to integrate the (now OPEN SOURCE!) Java into the system, they can make developer's lives even easier. Mono is also an acceptable choice, but the key thing is to get it integrated. Make your commercial Operating Systems FEEL like commercial Operating Systems. Not hobby OSes that have a nice coat of paint on them. In other words, maybe you commercial guys could pull your weight a little? Maybe?
* Ok, you can start flaming me now. I'm sure I've said something that offends distro X fanboys. Bring it on so I can ignore it.
Javascript + Nintendo DSi = DSiCade
"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."
.NET standard, or the Mono standard?
Would that be the
"Nothing to see here. Market forces and ease of use win over features, stability, or quality."
Well considering the story is about development environments (I'm not certain how desktop environments got dragged into this). Are you saying that Visual Studio is incapable of producing quality code that's stable? Or is two and three a function of the programmer wielding the tool, and not the tool itself?
...is not because open source offers too many choices. After all, Microsoft's products are still a choice among many other solutions. The reason why much of us still use Microsoft software (to be more specific, Windows, Office, and programming environments related to those two products) is because of a few reasons:
Microsoft alternatives do have their merits. To use operating systems as an example, OS X is a great general purpose OS, and I love the customizability of open-source OSes such as Linux and BSD. However, most software is written for Windows (you're guaranteed to find a Windows software package for almost anything, whereas you'll have to search harder when using an alternate platform), and if you have a Windows problem, somebody will know how to fix it.
I admit, I'm not the biggest fan of Microsoft. However, most of us can't avoid their software, like it or not. After nearly a year of not having a Windows machine, I installed a Windows partition to do class assignments. I don't like Windows, but I need to do what is necessary to complete the assignment. For some people, replace assignment with job and add "to pay the bills."
I don't think MS's monopoly will last forever. But, for now, expect to be still using Windows and other Microsoft solutions. When you are in a lion's mouth, wiggle until you wiggle yourself out.
Saw the headline, immediately groaned "Oh God, not this sh*t again!" And I'm only an AC!
Once again for the whole thread to follow: if having too many choices bothers you, then just pick one tool for each job at random, cling to it for life, and refuse to acknowledge that the others exist. After all, that's how a lot of you became Windows users back in 1995...
While I agree with your point, these points are more or less choices made during the design of a program or platform and are made either depending on the project or the company. I believe the article is referring to not only these standard design choices, but also the fact that there are literally infinite numbers of configurations using open source software which go beyond simple design choices, and which most firms want some kind of standard over.
AFAIK, managers don't want to have to spend the time making sure the environment is properly setup when that time could be used to make important design decisions.
This is why there is only 1 car manufacturer. 1 brand of soda, shoes, toothe paste and so on.
Consumers would get confused if they had to choose from 15 different versions of laundry detergent, so we only have Tide.
Keep in mind that monoculture has disadvantages too.
Variety, for example, is necessary for adaptation, creativity and resistance to disease.
Guess what? We all know that. We've tried Eclipse and KDevelop and Glade all your other tools. You have pretty cool languages but you insist on keeping your barriers artificially high by forcing a primitive toolset on everyone so that only the anointed few can develop software for your platform.
Of course one of the core problems is someone like this, who from the article seems like the quintessential "Microsoft sux" type-A personality suddenly realizes that Microsoft (and Borland and others) have been writing far superior development tools for the past ten years that actually increase developer productivity and having great success at it. What an idea! Having to learn 14 different tools to get something done might be good for bragging and leetness, but they kill productivity. In the real world, that kills the deal.
Imagine what kind of killer product you would have if you paired Ruby with a good IDE and a good graphical debugger. Or Python. A good front-end to MySQL that's actually easy to use. Or an admin tool for Apache that makes sense. But "ease of use" is not "leet", so no dice. "We don't want VB in Linux". That's a great attitude, and it will continue to perpetuate the idea that Windows is the only "easy" platform to write software in, with Microsoft tools. There's no reality distortion field here - that's just the truth.
So much potential wasted because of a culture that idolizes unecessary complexity as if it were a badge of honor.
The solution to his problem is not to get rid of one of them, but to put something in the documentation for AXIS saying "If you're working on a web service project, you may be better off using XFire." The fact that an open source project is able to recommend another solution like this is a strength. In contrast, a company (in this case Microsoft) with a vested interest in promoting its own monoculture is unlikely to tell potential customers to go elsewhere.
Conversely, if you have a choice of near-identical tools, any of which would be acceptable, why not just pick the one which is most popular at the time? This leaves you at the mercy of programming fads, but if you want a monoculture, you should expect that anyway.
If you all Google Slashdot, will it Slashdot Google?
So what if I have a choice between openoffice.org, abiword or LaTeX to produce my documents? As long as I save it as a PDF, anyone can read it. If I use Microsoft Word, I either install a 3rd party program to save it as a PDF, or require that the people I send the document to have the same version of Word as me, running on the same platform. Disclaimer: I didnt' read the article.
The people paying money for commercial Linux distributions aren't Uncle Ed and Aunt Martha. They're corporate or government IT departments, and they don't need every setting available to the GUI.
What you want requires a commercial distribution target for pre install on low end consumer grade equipment. Even ignoring the Microsoft tax, such a proposition is a bit shakey, financially.
A major problem, in my opinion, that a lot of open source products have is the lack of decent documentation. Everyone wants to code, no one wants to document. I'd be here all day if I tried to list all the open source products I've looked at and tried that I gave up on simply because there was no documentation, or only poor documentation, and I had to move to something commercial that was at least properly documented.
And before someone drags out the dead horse named "why don't you document some of these projects", the answer is I can't document something I can't figure out how to use. And as others have already pointed out, a lot of open source software is not intuitive.
I want a new quote. One that won't spill. One that don't cost too much. Or come in a pill.
I prefer Apache since it's free but....
s t.html .
This goes for virtually every non-default configuration of Apache and IIS but here are a couple examples.
Allowing only certain IP addresses to access a website:
Apache -
1. Research on the web how this is done using Google.
2. Find something called "mod_authz_host" and an example of its use here http://httpd.apache.org/docs/2.2/mod/mod_authz_ho
3. Get confused by all the different examples.
4. Attempt to insert "code" into httpd.conf to limit access to certain IP addresses.
5. Test to see if it worked.
6. Research, edit, test more as needed.
IIS -
1. Click a few buttons
2. Enter IP addresses allowed.
3. Test (it works first try as expected since editing was intuitive).
Use SSL:
Apache -
1. Research on the web how this is done using Google (lots of research).
2. Install something called OpenSSL
3. Copy a few files to a windows directory
4. Find an openssl.cnf file that doesn't exist with the OpenSSL install for some reason.
5. Create a SSL certificate using command line.
6. Due to legal/political constraints, download a different copy of Apache with SSL from a strange 3rd party website and replace current copy of Apache that you had installed.
7. Make several changes to httpd.conf file.
8. Install this new Apache as a service using command line if needed.
9. Make several more changes to httpd.conf file (uncommenting LoadModule line, including ssl.conf in an IfModule thing).
10. Copy the certificate files made earlier to an Apache directory.
11. Edit ssl.conf file on several lines to identify server name, document root directory, then also include the certificate path.
12. Restart Apache, pray it works.
IIS -
1. Go to website properties using GUI
2. Click Directory Security tab
3. Click Server Certificate
4. Follow Web Server Certificate Wizard to create certificate.
For extra credit, require SSL connection - In Directory Security tab, Secure Communication area, click Edit, and check the Require secure channel SSL checkbox. I gave up on that for Apache and figured out some way to just forward requests to https (a bit of a hack it seems).
Things just seem more intuitive when using IIS rather than editing conf files and hoping things work in Apache. There is a lot less frustration. It's a shame. Yes I did look for 3rd party Apache config GUIs and couldn't find anything that looked good.
simple, fast homepage with your links: http://www.ngumbi.com/
If you're going to claim that you have to pay for everything on Windows, you probably ought to choose better examples.
Visual Studio (Express versions), Eclipse, NetBeans, Dev-C++ -- all free
Again, free. You don't need anything but a text editor and the .NET SDK (free) to build .NET applications. Also, other languages like F# (variant of ML) and IronPython (uh ... Python on .NET) are free as well. In fact, IronPython is even open source.
SQL Server Express, PostgreSQL, MySQL, SQLite, all free. Sure, SQL Server (non-Express), Oracle, and db2 are not free, but Oracle and db2 are not free on Linux either.
IIS is "free" (comes with the OS you paid for), and Apache is obviously free as well.
They have the choice not to moan about Microsoft's vertically integrated toolset? Or they have the choice not to use Java?
For independent or small developers, an integrated set of tools isn't really all that important (though nice). For a medium to large business, it's critical if you want to get anything done in a reasonable amount of time without reinventing the wheel over and over again. That toolset doesn't have to be Microsoft, but they do provide a compelling set of developer utilities (Visual Studio is easily one of the best IDEs available for any price, for example). That's what the article was getting at -- when it comes to developers, Microsoft Gets It(tm) (queue Ballmer's infamous "Developers developers developers" video here).
The writing is on the wall for Microsoft. Sure, they've had the developers in the past, but I think it's only a matter of time before they jump ship.
Lots of people aren't too happy with Vista, and OS/X, Linux, and BSD are gaining ground.
The keys to the kingdom are backward compatibility, always an MS strong point. But the open-source community has this nailed -- the POSIX API's are over thirty years old, and won't change. It's only a matter of time before Microsoft changes just enough so that developers can't rely on them to be rock-solid anymore, and there will be a mass exodus.
It will start with specialized apps like video and audio editing software (already happened to some extent) and gradually will work its way through the entire business suite of tools.
Some years ago, I offered to write a Postgresql database app for a small business. They refused, saying they wanted to use SQL Server, even if it was more expensive, since "Microsoft isn't going anywhere anytime soon."
Today, I doubt there would be that same certainty. Ten years from now, I expect the tables will have completely turned, with Linux based apps seen as the "old reliables" that never go away.
If moderation could change anything, it would be illegal.
Oh, god, what bullshit is this! Choice is not a problem! If choice was really a problem, then somebody would create a Linux distro with no choices. "Sit down, shut up, and run the software we choose". Except, nobody does that because nobody wants that.
r tz-master-chooser.html
The whole "choice is bad" meme is complete and utter nonsense. http://angry-economist.russnelson.com/barry-schwa
Don't piss off The Angry Economist
You seem to misunderstand that Linux is not an operating system, it is a kernel. The various 'distributions' are operating systems built upon the Linux kernel. In the vast majority of cases the distributions which target client solutions offer stable UI layers for any given version.
So you could, for example, create a solution for Ubuntu - currently the most popular client distribution - which includes a windowing system, widget libraries, desktop environment, documentation environment and everything else you may need.
]{
uhuh.. what if I want to provide a full blown application suite? You are right, Linux can do all sorts of wonderful things like that (but then, so can Cygwin under win32.. if html2pdf doesn't exist in Cygwin yet, porting cannot be all that hard) so that point is slightly moot. I've also found that Python is fantastic tool for thousands of such odd-jobs like that, and Python is just as happy under Win32 as Linux.
The fact is that for large application development, Visual Studio IS a fantastic tool and I would use it before any other development environment I have experienced to date, for such a task. As for Windows being a closed platform, care to actually elaborate on how it is closed, and how this closed nature has a negative impact on daily productivity?
I appreciate Linux advocacy, I used to be a Linux advocate myself, and ran Linux exclusively for a long time, but the fact is that I am not going to be Pro-Linux just because it's cool. Windows does everything I want (which generally consists of watching the occasional movie, bit of music, web browsing and the odd bit of World of Warcraft). Linux does all of this as well, but just not quite as nicely, so why bother?
Perhaps I'm with the wrong crowd here, being Slashdot and all, but I'm starting to get bored with the whole "Support Linux because it's not Microsoft" rant - How about supporting the best tool for the job, no matter what that tool is? It's just a little bit more mature.
Will program for karma.
If you think that it's incoherent for X windows to be in a different module than the kernel, there's something that you don't get. I understand that there's a confusing amount of choice for someone who wants to develop Linux software, but there never will be some kind of "BUILT-IN" Linux(tm) windowing system, the concept just doesn't make sense. However, it is true that a unified API that eases porting between different GUI kits would be nice.
You would then target a fraction of a smaller customer base.
Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
Which development environment offers the best integration with MS products? Surprise its visual studio.
If you have a windows shop your stuck with it. Borlands tools do not include things like the VBA for office.
http://saveie6.com/
"Built-in" does not have to mean built into the kernel. In the case of Linux, "built-in" might mean "available by default in every distribution without having to do anything special". Maybe that's KDE, maybe it's GNOME, maybe it's something else, but it has to always be there (alternatively, you have to really work at making it not be there, in which case you're probably not the target audience).
I don't think a unified API solves the problem, so long as projects are allowed to implement however much or little of it as they want. What is needed is a single, de-facto GUI widget kit that is ubiquitous across all distributions of Linux. Or at least provide a single easy way for an application to force the installation of that toolkit if it's not there already (and no, debs, rpms, pkgs, and whatever else don't satisfy that criteria because there's too many of them -- one installation method, one dependency resolution method, one toolkit. Not 10 different installation methods, each with their own dependency resolution models, for 20 different toolkits).
And that is assuming that OSS developpers are a bunch of nerds in their free time, doing software just for fun. Sad to say, his assumption is closer to reality.
Oh, there are thousands of 1-2 man projects on sourceforge done by enthusiasts in their free time. Chances are you haven't even heard of most of them. They also tend to be small projects.
If you look at what's in your favourite Linux distribution, though, it's a different story. Look at the kernel credits some day. You'll see a lot of people from IBM, Red Hat, etc. Hate to break it to you, but they're doing a paid job there. Others may not be employees at such, but got paid/sponsored by a corporation to develop that stuff. E.g., ReiserFS was pretty much paid for by SuSE.
Other programs there? Mozilla? It even got started because Netscape wanted a browser that can stop MS's onslaught onto their business. Then it got bought by AOL, and nowadays it's Google footing the bill. Open Office? Got started as a proprietary project, then bought by Sun. Nowadays it's Sun doing pretty much the whole work, with people paid to code on OOo. It's costing Sun a lot of money. Etc.
See, the F/OSS that gets taken anywhere _near_ seriously these days is the work of corporations. Pretty much it's just a framework for a bunch of corporations to pool their resources into fighting MS. None of them has the resources to challenge the behemoth single-handedly, and some have already lost against the behemoth when trying to "solo" it. E.g., ask IBM what happened to their OS/2.
Where this long rant is going is: of _course_ those corporations are aiming at becoming the next MS. In fact, some of them were the original (near)monopoly long before MS. IBM used to be _the_ name in computing business, long before MS even existed. (And incidentally was just as underhanded as MS. The term "FUD" was first used to describe IBM's tactics, long before MS even existed.) Sun was _the_ name in professional micro-computers. Etc.
And some of them suffered quite humiliating defeats at the hands of the "beast". IBM created the PC, and everything had to be "IBM PC" compatible. Then MS helped shift that to "Intel x86 compatible". When IBM tried to introduce the micro-channel architecture, it discovered that it no longer is in control of the very architecture it created. The market just ignored IBM and took the PC in the direction other companies wanted. Then even Intel lost control. It became "Windows compatible." It may not have been immediately recognizable as a defeat, but it became blatantly so when Intel had to go ask for MS's permission to implement their own 64 bit extensions... and got told to use AMD's instead. Ouch.
In a sense, MS helped "create" Linux. At the anti-trust trial, MS used Linux as an example in their "we're not a monopoly, other people can still make good OS's" sophistry. It just told everyone what other OS they could use instead, if only it was more up to modern standards. And they just proceeded to help with bringing it there.
At any rate, the short story is: most of the successful F/OSS is the work of corporations, and _of_ _course_ they want to be the next MS. Or at least to take some market share from MS. And _of_ _course_ they'd like to make a profit (indirectly) out of it. That's the whole _point_ of bothering with it.
E.g., Sun isn't developping OOo because it just likes making cool software. It's because at some point people were saying, basically, "Yeah, well, but your workstations don't run MS Word." If the software they pay big bucks for doesn't address that problem, they might as well fire that team and move on.
E
A polar bear is a cartesian bear after a coordinate transform.
1. It needlessly complicates the kernel, meaning that there are going to be more bugs/exploits.
2. Isolating the kernel from the windowing system is good because if X breaks, I can still use the kernel via a bash shell, which would probably give me the functionality that I need to repair/reinstall X. If the kernel and the windowing system were merged, I probably wouldn't have a fully functional kernel if something happened to the windowing system. The only option then would be a reformat.
"It is a denial of justice not to stretch out a helping hand to the fallen; that is the common right of humanity."
I'm not sure I understand you. You say that because Linux has both GNOME and KDE (and others), there is not one standard GUI on which to develop. But why don't you just pick one? People have access to both, you know.
For example, as a die-hard KDE user, I'll ask: what happens if you just pick GNOME and go with that? If it's a useful program to me, I'll install your GNOME program on my KDE machine. For example, I run GnuCash and not KMyMoney, I run Gnumeric and not KSpread, I run Abiword and not KWord (or OpenOffice.org), and I run Firefox and only occasionally Konqueror. I plan to continue to use KDE for the foreseeable future, and I've never downloaded the default Ubuntu, only Kubuntu.
Unless I misunderstand you, you seem to be saying: "Microsoft has a single door to walk through. But Linux provides double-doors, so I don't know whether to walk through the left one or the right one. So I won't bother, and I'll just stick with the single door because the lack of choice is less confusing."
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
Then users demanding "Linux" applications are demanding something that will never happen since you can not write an application to a kernel!
:)
Sarcasm aside, I am (and have always been) shocked at how various Linux distributions differ. I'm by no means a Linux expert, but come on, if you can't agree on where to put your init0.d-init6.d (or whatever it is, yes I'm looking at you Gentoo) then how do you expect an outsider to write something that works for "Linux"?
I mean we hear all this crap about Microsoft and how ME breaks 98, and 2000 breaks ME and Vista breaks XP, etc.
But do the math, how many operating systems are we talking about here? now compare that to Linux distributions available today.
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 just (literally) bought a new house (closed escrow today) and I've been in the carpet choice dilemma for the past two weeks! (mind you it took me a while to settle on carpet instead of hard wood floors, pergo, etc.).
Come to think of it, I think this carpet analogy (that I'm about to write) is right on money here. OS is like carpet! It's the foundation that you build on. Think of how carpet pretty much dictates what kind of furniture (style/color etc.) you'll be placing on it, OS will do the same with your applications.
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).
Things like carpet and operating systems (I can't believe I'm lumping them up in the same sentence) are not mundane. They are a *huge* deal because of the consequences of the choice (much like posting this without hitting the "Post Anonymously" checkbox). They're something that you will invest a good amount in, and that will be with you for a long time.
Choice is a VERY good thing, too much choice may even be perfect for those who know "exactly" what they want.
I live and breathe computers, and I think it's silly that I'm spending all this time researching "the" perfect carpet for me and my family. I also believe that the home decoration specialist that knows what kind/make/model/color/class of carpet they want for the hallway of their second house (and have it written somewhere) would be as frustrated as I am with carpet if they had to choose from the plethora of Linux distributions out there today.
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.
I'm done ranting, gotta hit the sack and hope that I come to a decision about the carpet before we get the keys!
Side [OT] (as if this whole thing wasn't anyway) note:
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
If you can't mod them join them.
Bah. KDE-based skype works just fine in a gnome session. It even puts it's status icon in the appropriate place on the gnome panel.
The only built-in thing in linux is the kernel, and most of that is optional, and that's the way it's going to stay. So "no built-in whatever" will always be true. So what. Require X11 for your app. Pick a common gui toolkit and use it. Compile statically if you're worried. Your reasoning lacks merit. Find a better reason (there are plenty) not to support linux, or shut up.
Software patents delenda est.
Provide the source code under an open license. It's how we want it to happen.
"I've got more toys than Teruhisa Kitahara."
I'm not convinced the article provides a solid basis for blaming choice as a problem.
:-)).
.Net. From an IT strategy point of view you're better off with a direction that YOU set, not the vendor. Not only is it cheaper, it's also less driven by a vendor's need to flog new products.
I have yet to see people try to find a new toolset every time they build a platform. Usually, an IT shop decided on which tools it will use to do the job (including which hardware, code language and dev framework) and will stick with that choice, simply because that's where their expertise lies. Only when the toolset is not up to the job or there is a simpler/better way to address the task at hand will there be a re-examination and/or switch, and such changes are in both environments (Win/FOSS) also driven by the people doing the job doing the usual looking around for ideas and products - that's simply part of the work (did I just argue that Slashdot reading is essential? Yes!
After that it's learning how to maximise your use of the toolset and work around the problems with it, and that tends to result in some branching out from the default platform as well. Do MS shows only use 100% MS code? IF SM had their way, sure, but life's not like that. The only difference with an MS shop is that experimenting doesn't immediately cost license fees and instantly creates the risk of a FAST visit being successful, but that too is an issue hat can be managed.
So this 'choice' is a starting issue, not a live ops issue.
The challenge of a monoculture is not that it's mono, it's about who controls the direction. An MS monoculture doesn't really to be driven by user need, witness the heap of crap that is Vista, and the total mess they made of the different versions of
At that point you can start asking questions about true business benefits and TCO.
Insert
I watched V for Vendetta again last night, and was reading some related material online afterwards. It introduced me to a couple of ideas which although I'd more or less known about instinctively, I possibly hadn't considered from quite that perspective. This is going to appear to be offtopic at first, but bear with me and you'll see the point as it relates to the issue of choice with Linux.
From what I've read, the central element of anarchic thought is apparently the idea of a scenario where people are genuinely self-responsible; where people are able to make decisions and choices about everything they do, and where it can be at least hoped that the need for an external authority is mitigated by said people having an internalised system of morality. In other words, the idea being while they are able to choose to do whatever they like, that people will eventually figure out what they are meant to do on their own.
However we keep seeing (no doubt unfortunately in the minds of some of us) that the above scenario, not only where Linux is concerned but in every other area of their lives, is overwhelmingly not what the vast majority of people truly want. I've found myself reading quotes from both Freud and George Bernard Shaw over the last 24 hours that stated that contrary to the commonly held belief, the majority genuinely do not want freedom, precisely because a prerequisite of freedom is self-responsibility.
This of course is where not only Microsoft in the case of software, but repressive states of all kinds in general life come into the picture. As V said, they offer order, certainty, stability, an absence of chaos, and most importantly, an absence from the need for a person to think for themselves, and all they ask in return is silent, obedient consent. They give people a scenario where decisions are made for them, where no thought whatsoever is necessary, nor responsibility taken for wrong decisions. As the old saying goes, "Nobody ever got fired for buying from IBM."
This is what people overwhelmingly want; what they are trained from the earliest age to want. National governments use the education system these days in order to start negative reinforcement against the exercise of free will within individuals as early as possible, and if such is instilled deeply enough and early enough, the process produces individuals who refrain from exercising choice as much as possible for the rest of their lives thereafter.
If you're wondering why people continue to want Windows over Linux, and continue to complain about the degree of choice inherent in Linux, you might perhaps also want to ask why people are also willing to allow the likes of George W. Bush and Tony Blair to remain in political office. The answer to both questions is the same, for they are in truth both different elements of the same issue; an insistence on avoiding self-responsibility and reasoned, conscious thought within the majority of the population.
How can Linux advocates overcome such, I hear you ask? Instilling independence in those who do not have it already is by necessity an incredibly slow and transitional process. In the case of someone complaining about being overwhelmed by choice, I'd probably start by asking them what it is that they as individuals want to do with a computer, and then direct their attention to a single distribution (or possibly even Windows itself, if appropriate) which will meet their needs. I've tended to notice that people aren't normally wanting a reduction of choice for people other than themselves, when they are asked, but merely want a scenario where they do not need to engage in it. Hence, if they find something which will meet their own requirements, they will very often cease to complain.
Some individuals are inherently lacking initiative and crave situations where they are taken care of by external parties. Sadly, there isn't much any of us can do in the case of such individuals, other than hand them a copy of Ubuntu or Vista, and a smile. Although I fall into the trap myself on here fairly regularly, I also try and tell myself that such people are not worth getting upset over, since they are a reality that we cannot change anyway.
What he's really talking about is the Network Effect, but doesn't seem to realise. The Network effect is why we speak national languages instead of reegional ones, why some form of English is ultimately going to replace all others, why TCP/IP is the only protocol our machines talk now. Why all keyboards are querty. Why we use the same currencies, why we all drive on the same side of the road. There is utility in all things being the same.
It also applies to user interfaces, libraries, operating systems etc but to a much weaker level. This simply means that it takes longer for the users of the various interfaces, libraries, development tools to converge on the same solution. The need can't particularly great because if it was, the convergence would be happening far quicker. It'll happen over time in the Linux environment, in the meantime, the market is going through the various Linux softwares and choosing the one which fits their needs best.
Deleted
If only I could get a look at the user-agent strings to see how many of the "all praise consistency" crowd have posted their comments under Firefox. Those of you who did should feel a small twinge of moral ambiguity the next time you open a page under tabbed browsing. Microsoft only came out with tabbed browsing when choice put their back to the wall. I was reading the other day that ninety odd percent of the world's food production is confined to twenty odd species of plant and animal. While we're on the subject of restricting choice for the greater good, I hear that arranged marriage offers many practical efficiencies.
"it is unstructured choice that makes it difficult for consumers"
/ 27/what-is-a-linux-distribution.html It says 'Choosing a Linux Distribution' and lists the major ones. Does it tell you what they do? No, it tells you how they were born. WTF good is that?? It does recommend Debian for servers, and Ubuntu for newcomers. But it doesn't say the features at all.
I'll agree with that. Now tell me where the structure is in choosing a distro for Linux.
MS offers choices in their new Vista, and the 5 or so versions that they offer is an almost unbearable choice for consumers. ('Ohhh, do I really need feature X? What if I choose not to get it, and need it later?') At least they have a chart that shows you the features and what you'll be missing if you buy the cheap ones.
Linux offers dozens of distros and I've never yet seen a chart that shows the pros and cons of each one, or even the biggest 5. For instance, check this page. http://www.linuxdevcenter.com/pub/a/linux/2005/10
So it's unstructured choice. You could spend months on the net researching distros before you actually found the one that suited you. With the Windows Vista chart, it would take an hour, tops.
BTW, that link was the first result from Googling 'linux distro chart' and none of the other results even seem relevant.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
Although Linux distros have many flaws, they have nothing to do with the reason why most people and businesses use Windows.
Linux and Open Source are new as a mature software solution. Microsoft started dominating the market many years ago now. If everyone bought computers today and gave them to employees that had never used a computer before, then of course we would win. But that is not the situation. Companies have documents in Word format; they have employees who think the big blue e equals the internet; people have paid for licences already. It will take time, but we will win.
I swear to FSM, I'm gonna go postal the next time I see this argument. Come over here and let me beat you with a clue.
The vast majority of computer users are not developers, code warriors, uber-geeks, or anything of the sort. All they want is to check their mail, browse the web, and run a word processor. They don't understand this distinction. They don't want to understand this distinction. So what happens is that they call it whatever they hear it being called.
It's akin to pointing to a parking lot and calling all of the vehicles in it "crankshafts", and then berating some hapless would-be driver for not understanding the distinction that that happens to be just one critical part in the overall makeup, and even though you casually call them all "crankshafts" the vehicles are likely to bear little semblance to one another in form or function.
Yeah, I know. Another car analogy. I'm trying to be feel apologetic...
"Hey, the third matrix movie would have been good except for the plot,story, and acting." --AC
Here you have two prime examples of "too much choice" in action.
You're assuming that everyone uses an apt-get based package distribution method, and you just can't do that.
You're also assuming KDE is there, and that's an even more flawed assumption.
1) Your software still looks like a 16-bit Windows application. I imagine the code isn't very portable to begin with. Hence your difficulty in porting.
2) GTK is your GUI target. If you need a C++-based library, then target wxWindows or QT (added bonus, you get Windows compatibility for free with those two).
There aren't any other choices. It really isn't as complicated as you make it out to be.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
But as you say, too much choice is crippling. To quote author Madeline L'Engle: "Freedom is a terrible gift, and the theory behind all dictatorships is that 'the people' do not want freedom. They want bread and circuses. They want workman's compensation and fringe benefits and TV. Give up your free will, give up your freedom to make choices, listen to the expert, and you will have three cars in your garage, steak on the table, and you will no longer have to suffer the agony of choice."
Graham "Teach" Mitchell, computer science teacher, Leander HS
"Not an actor, but he plays one on TV."
Blame the user and tell him he's lazy for not understanding crap that just gets in the way of getting work done.
It's easier and more efficient to ask "paper or plastic" than to follow that up with "paper made from wood pulp or grasses?" "recycled wood pulp or all-new?" "paper from hardwood or from softwood?" "Made from trees from the Northern hemisphere or southern hemisphere?" "Bleached or natural?" "Logo printed on or blank?"
Sure, some people will want all these decisions, but they shouldn't be a requirement of the OS. Solve the Gnome/KDE nonsense and you'll see Linux propagate much more than it already is.
the major advances in civilization are processes which all but wreck the societies in which they occur - A.N. White
The problem is not the existence of too many choices. The choices should be out there for those who need them, but they should also be transparent for those who don't need them. This is one reason Ubuntu has proven to be so user-friendly. It makes many choices for you by default, which are good choices for most users. It doesn't force users to think about choices that they don't really care about anyway.
On the other hand, I think that open source development often wastes much of its potential by creating too many varieties of products. I have a dozen video players installed on my system, and I'm still searching for a good one. There might be a good one available if the development work hadn't been repeated across so many similar products.
I'm saying monkey see, monkey do. She's calling them crankshafts because she sees you and a bunch of your buddies calling them crankshafts. I'm saying "if" she's wrong, maybe you should set a different example rather than split hairs and confuse her with information she doesn't need, while continuing to do the same thing for which you're "correcting" her.
Nevermind that I'm not completely convinced she's wrong. Nomenclature changes, and it might be that you don't have a lot of say in that change. Majority rules. We call them "cars" now, but they started out as "horseless carriages". If the majority of folks mean a complete OS when they say "linux", you might just have to suck it up and deal lest you find yourself railing against the wind.
And don't kid yourself, the distinction doesn't really matter. (Blasphemy!) No, but it's true! The kernel, without a platform, is pretty useless. A platform, without a kernel, is much the same. There's an intrinsic linking there that you can't put down as (or with) semantics, and the simple fact is that the demarcation point between the two only matters if you're coding parts of the system. To everyone else, it's just geeks making noise which cues the glazed eyeballs.
"Hey, the third matrix movie would have been good except for the plot,story, and acting." --AC
Yes you do; you just don't know it. You use linux because it works and because it costs no money. Those two aspects hinge upon freedom.