Opinion: Competition vs cohesion
What's more important for the success of Linux: competition between the various components and projects involved, or co-operation to present a unified front in the battle for the desktop? How do we ensure a good balance between the two? Read on for Mike Saunders's entry for the podcast challenge, and let us know what you think in the comments.
Competition is good. Competition leads to better quality, more innovation and cheaper prices. For many years, we in the Linux community have argued that Microsoft's dominance, especially in the late 1990s and early 2000s, heavily stifled competition in the computing world and held back great new technology. When you go into a PC store and see nothing but row after row of Windows machines, you know something's wrong.
Things have improved in recent years, with more opportunity to buy machines pre-installed with Linux, and EU institutions keeping a firm eye on the Redmond giant.
However, competition is only good when it makes sense. I feel that in the Linux community, we often push the goal of competition too much when consolidation would actually be better. It's a difficult topic - we all want freedom, yet nobody should have the freedom to blow our heads off with a shotgun. So we make compromises.
I want competition amongst my desktop apps. I want Firefox and Chrome developers battling each other to make their browsers better. I want AbiWord to push forward with a fast and light word processor, making the OpenOffice.org folks realise that they have to do something about the bloat. I want a choice of music players, text editors, and why not, even calculators. This competition makes the Linux desktop better for everybody.
But user management tools? Network setup utilities? Package managers? Do we REALLY need to have endless variants on these programs that do exactly the same thing, yet only serve to make Linux documentation needlessly complex? "To add a new user on Fedora, click Foo Bar Baz... On Mandriva click Wibble Wobble Flump". No wonder that so many guides still explain how to do things at the command line. It's the only thing consistent between distros.
Linux would be a much more cohesive experience if all distros could settle on a base platform where skills are easily transferred from one to another. Having system-level administration tasks totally fragmented across the myriad of configuration tools that different distros use is crazy. It's massive duplication of effort, it makes documentation a mess and it puts off new users who want to learn skills that won't be made redundant if they ever happen to change distro.
There are countless analogies that can be used here, to demonstrate that at a base level, unity is often more important than competition. For instance, we all want to choose our own cars, but we accept that we need to share the same roads. We could sell bits of roads to different companies and have it so that certain roads would only work with certain cars, for the sake of competition, but it would be a disaster.
So let's enjoy competition where it matters - where people WANT to make choices. Where people actually want to compare programs side by side. But hardly anyone cares if Mandriva's package installer is better than Ubuntu's package installer, or OpenSUSE's hardware manager is better than Fedora's hardware manager.
These are base level, important system tools and we need to make these stable, coherent and the same across all distros so that Linux can be seen as a unified operating system at its core.
What do you think? Post your musings in the comments.