2010-09-06

Linux and Breakfast Cereals

I got the idea for this post from this article (Caitlyn Martin, O'Reilly Broadcast), which is a response to this op-ed piece (Graham Morrison, TechRadar).
I find it a little ridiculous that Mr. Morrison can seriously claim to not understand Linux package management after dealing with it for 12 years. But, then again, the article seems to support this as well. Follow the jump to read more about this.

Let's start with his analysis of Shotwell vs. F-Spot in Fedora. As Ms. Martin sharply points out, no one is forbidding the use of F-Spot in Fedora — it's just that now people will have to download F-Spot if they want it (where before, people had to download Shotwell if they wanted it). Furthermore, Mr. Morrison's assessment of Fedora users' reaction to the replacement of F-Spot with Shotwell is wholly incorrect; for one, Fedora users are likely more experienced Linux users, so they would know how to get F-Spot if they so chose, and Shotwell is certainly more advanced than Microsoft's Image and Fax Viewer — it has features like adjusting rotational orientation, red-eye, size, and hue. among others. In addition, as Fedora developer Adam Williamson (who, as I recently found out, commented on my review of Mandriva 2010.1 — yay!) explains, the reason to replace F-Spot with Shotwell was on account of the former's bloatedness and lack of outstanding features versus Shotwell as opposed to F-Spot using Mono.
He continues on to say,
The problem is that if the wider community can't decide for itself what a solution should look like, the power to make those decisions will be taken out of its hands. And losing the ability to make those decisions is a loss of freedom.
This statement essentially contradicts itself. The whole point of choice is that even if the majority of the community leans towards one thing, the user still has a choice. What if our civil liberties were like that? Would it not be a loss of freedom then if the majority decided to favor one viewpoint on some issue and totally cut out the other viewpoint(s)? In a more concrete way, suppose in the debate between science versus religion, scientists prevailed and decided that religious debate would not be tolerated not just in scientific circles but in any square of debate. Is this somehow a promotion of freedom? Huh?
The beauty of a large community with many such choices in software is that, in the case of this example, even though the majority of developers and users have picked Shotwell as the default photo editor, nothing is stopping other users from continuing to use F-Spot as their default photo editor. Which projects survive and which ones die off are determined by virtue of the community gravitating towards one project and away from another, as opposed to the community making hard-and-fast decisions. The even better thing about all this choice is that all this simultaneous development leads to exponentially more innovation occurring in each genre of software. If everyone focused their efforts on one text editor, one music player, and so on, the rate at which developers could innovate would be limited at some point.
Mr. Morrison then talks about why choice in package management methods is a problem. My problem with his argument here is that for one, there are basically just 3 different ways to get a package: DEBs, RPMs, and compiling from source. Compiling from source is seldom required nowadays (unless one is using a distribution like BSD or Gentoo, in which case the user is probably smart enough to be able to sift through the vast array of choices anyway), and as DEBs and RPMs are basically the two leading forms of package files (and there are now well-supported scripts to convert between the two (e.g. "alien")), Mr. Morrison basically already has what he wants without even knowing it. There are myriad examples of there being at least a few choices available. For example, the US uses 115 V AC power outlets, while Europe (and many Asian and African countries) uses 230 V AC power outlets. Sure, it would be nice if this was standardized (so that all electrical devices could be used anywhere), but right now, this is the way it is, and there are established ways (adapters) to convert from one voltage to the other. No one is complaining too much about it.
Mr. Morrison goes on to complain about how the choice is overwhelming and how someone higher up should be making the choices about which programs are the best. For one, (at the risk of sounding like a free software zealot here, I say that) Linux itself is not an operating system; the distributions are the OSs here. Each of them is deciding which piece of software is the best, and the reason why their pick may change from time to time is because they may decide at some point in time that one program better fits a certain purpose than another; it's all to give the user the best experience possible. If one considers Canonical the leading company promoting Linux, it does make a lot of decisions with regard to default applications in Ubuntu (which trickles down to derivative distributions), so I'm not entirely sure what Mr. Morrison's complaint is worth.
Furthermore, going back to his confusion over the array of options with regard to package management, if one looks at Microsoft Windows, almost all of the programs one must install to get a workable system are third-party applications with varying degrees of support and trust, and almost all of them have administrator privileges (until Microsoft Windows Vista), which is very dangerous security-wise. At least with Linux distributions, the developers try to tailor and maintain popular programs for the distribution in question and these programs usually don't have the privileges to modify the system's internals. I again fail to see the merit in the complaint.
The reason for such diversity in package management is because this diversity was present when Linux was born as an open-source kernel. The idea is either to use what best suits one's needs or to make something better. This is why DEBs, RPMs, and Android packages were created.
Finally, I'm not sure what locking down Android phones has to do with a universal package management standard; this seems to be rambling on Mr. Morrison's part.
I think it's really a shame that the article seems so ignorant (and proud of said ignorance) of the way package management and other development in Linux works, considering that his other articles reviewing Linux distributions and talking about the state and future of Linux are very well-written. I hope this is a one-time affair only.
Let me now move to Ms. Martin's article. I mostly agree with her assessments, though I'm not sure if it's fair to call Mr. Morrison's "arrogance" that of an author or of a "new user". More importantly, however, I must disagree with Ms. Martin's choice of breakfast cereals as a metaphor for the overwhelming array of choices in Linux. The reason for that is that people have been able to develop preferences for one sort of breakfast cereal (e.g. honey-glazed O-shaped cereal) over others (e.g. frosted shredded cubes of wheat), as the breakfast cereal industry has not been monopolized since the 1920s (when there was only corn flakes). On the other hand, most people have used computers solely in the context of Microsoft's dominance of the OS market (Mac OS notwithstanding), which means that they are certainly overwhelmed by the myriad choices offered by Linux when what they are looking for is a single, unified, standard alternative to Microsoft Windows. I think that this is what Canonical is aiming for (and this is why people are criticizing it for not contributing to the development community actively enough if it wants to make Ubuntu a viable competitor to Microsoft Windows and Mac OS X in the marketplace).
Wow, that was long, wasn't it?