Rate this page del.icio.us  Digg slashdot StumbleUpon

The choice of Linux

by Jesse Keating

This is in response to a thread from fedora-devel-list. You can read the relevant post in the redhat.com mailing list archives.

Many people claim that “Linux is about choice!”. That’s a neat phrase, but what does it mean? Does it mean that you should have the ability to twist and turn 400 different knobs on your Linux install? That’s what some think. Does it mean that you have the right to choose Linux, or choose your flavor of Linux, and then choose from the package sets within those flavors? That’s what I and many others think. There is a very distinct difference here too. Let’s look at it from a food point of view (one of my favorite points-of-view).

Lets say there is a kitchen preparing for a giant feast. This is definitely more work that one person can handle, so there is a team of chefs involved. Lets say that each chef was given the right to decide what dish to make, so long as a certain things were covered, like appetizers, salads, soup, entree, desert, drinks, etc.. What could happen? The chef’s would feel very empowered, and that’s good. However what about the diners? What happens if the wine clashes terribly with the fish for entree, or the soup sours the appetizer? What if each dish required a different utensil to the point where there were 15 different items surrounding a diner’s plate? They’re then left in confusion as to what to use when? Again, not a very good experience for the diner.

Instead lets look at a different approach. Lets appoint a head chef (or three), and with input from all the other chefs they work together to create an overall menu that integrates well. The place setting isn’t overwhelmingly complicated, the drinks all complement the courses, and the courses themselves flow from one to the next without jarring the diner. The dining experience is much better, even if there isn’t as much variety, because the dishes all work together. What about the chefs? If they were given an overall menu, but left to execute that menu however they liked–how precisely prepare each dish, how to plate it / present it, how to garnish it, etc.–they still feel very empowered. They feel proud to have been a part of a great feast, and prouder still of the part they had control over.

As we can see, the second example is a much better result overall. Not only were the chefs involved fulfilled, but the diners had a much better experience. For variety, they can choose a different restaurant or a different meal at the same restaurant, but with confidence that each time they visit, the meal will be cohesive and complementary rather than disjointed and jarring.

At the end of the day, Linux is about users, and what’s best for them. For without users, we have no feedback loop, we have no contributors, and we have no reason to continue the cause.

Linux can be about choice. You can choose to use Linux instead of something else. You can choose which Linux distribution to use, and in some cases, you can even choose which flavor of that distribution. These are all choices a user can and should make. Lets not interpret choice as an excuse to present 400 knobs to a user and expect them to know what to do with them, and then accuse them of doing things wrong when it inevitably breaks. If this excludes some users because the choices the head chefs make don’t suit them, that’s fine. There are other Linux choices for them. The important thing is that we give the users who choose us the best experience possible.

About the author

Jesse Keating is a Senior Software Engineer for Red Hat, Inc. and is the lead Fedora Release Engineer. He has been involved in the Fedora community since its inception and has been a member of various Fedora committees throughout.

26 responses to “The choice of Linux”

  1. Γριφεγ Γθωαφ says:

    I couldn’t agree more; but this doesn’t really set Red Hat/Fedora apart. Ubuntu, SuSE, Mandriva, or Slackware, Solaris and ReactOS all share this same philosophy.

    The odd ones out are Debian, Gentoo and perhaps NetBSD.

  2. Loic says:

    Well Γριφεγ Γθωαφ this isn’t completely true…
    As far as i know, RedHat suse mandriva slackware ubuntu and other distribution are all stuck with something like that.

    Debian gentoo an all.
    As for package management, i don’t know why it exclude Gentoo, Deian and bsd…

    They all work great but every distro has the same problem.

    First thing that come to my mind while reading this is how sounds is handled. I don’t know why it havent been standardized and improved so every good features come inside one beautiful package that could be used without pain by anyone. We are stuck with alsa,jack,openal etc and every of them seems to be linked together. Sounds in linux is probably the top first broken part i know.

    PulseAudio does a great job with that but it is still broken. I reinstalled gnome that eradicated my pulseaudio config file and sounds wasnt just working after that…just because gnome is defaulted to alsa mixer makes sounds broke if you reinstall gnome in fedora. Thats pretty lame.

    The other thing is softwares…While choice is definitvely a great thing. I’m not sure i really need more than one terminal if the others does exactly the same thing.
    Like i would use may be gnome-terminal + yakuake just for fun. But beyond gnome-terminal could be replaced by any other terminal and it would work like a charm…

    Like Jesse said, having a community that work together would make us better things. There could be more challenge against each community just like beryl did with compiz… too bad beryl is dead.

    If someone can point the real big problem that would be fun…
    Improving LSB is great but LSB should in no way reduce you to make things. Things like Specification.

    Follow those simple rules and beyond that do whatever you want. The only thing that is important is that these spec let you use any software and it wont break. Just like window managers do. It’s not magical that typing metacity –replace will work if you use kde or any other desktop manager.

    Sorry i’m little asleep and english isn’t my native language so. Don’t blame me…at least i tried to express an opinion :)

    Loïc

  3. fred says:

    I think you mean “dessert”. Especially the abstract noun form of “desert” is amusing, though :)

  4. she says:

    hope you guys dont feel bad when i say this, but i think the whole linux world as such, fights each other more than cooperates….
    I mean in regard to good ideas… take projects such as slax or similar. Why cant these solutions be offered in an easy fashion but without being tied to a specific distribution?

    This is thinking inside a container… it makes the container look good, but outside the container the world still “sucks” …. Or lets take on package management. Its the old /usr vs /usr/local chaos whereas Microsoft or even Apple take a per-directory approach. Why cant a user decide what he wants to have on his system? And why is there really a distinction at all about “admin” vs “user”?

    I am not talking about “simple” users who just use it. I am talking about more “advanced” users. They are quite left out and will have to either go away and create their own distribution (or join existing ones) instead of sticking together and improving the OVERALL of the distros….

  5. rm42 says:

    I like your analogy. And yes, I agree that for there to be order, there needs to be some form of hierarchical structure with some people authorized to make final decisions.

    You say that “choice” should not be used as an excuse for complexity, and I agree. However, the other extreme is also true. Don’t use “simplicity” as an excuse for lacking, inadequate, or substandard products. Take the GNOME File Save/Open dialog box for example. For a while now, people have been saying that it is not up to par. Yes, people have the choice of going to KDE or even Windows, but why not just acknowledge that being able to rename files and folders from a File Save/Open dialog box is very handy, very, common, and expected by most users? Sometimes the cooks can become complacent and start offering insipid food if no one is watching over them.

  6. Justin says:

    Like rm42, I agree that there should be some overarching structure to maintain simplicity and ease of use. I do not agree, however, that the 400 knobs should not be offered.

    Choice in Linux not only refers to the knobs, but also to whether the user should turn those knobs as well. For the majority of users, the knobs at their default settings is good enough, and they don’t need to do - and shouldn’t - go ahead and twist the knobs anyway. If they do twist the knobs, it goes with the assumption that they know what they’re doing.

    Take Firefox, for example. Firefox works well out of the box, and none of the settings needs to be changed. Access to the about:config page, however, should be left in, for people who want to and have the knowledge to alter Firefox’s behavior fundamentally.

    I agree that just because choices are available doesn’t mean that users should be forced to make them. But at the same time, that choice shouldn’t be taken away for the sake of simplicity, either.

  7. Andreas Tunek says:

    “You say that “choice” should not be used as an excuse for complexity, and I agree. However, the other extreme is also true. Don’t use “simplicity” as an excuse for lacking, inadequate, or substandard products. Take the GNOME File Save/Open dialog box for example. For a while now, people have been saying that it is not up to par. Yes, people have the choice of going to KDE or even Windows, but why not just acknowledge that being able to rename files and folders from a File Save/Open dialog box is very handy, very, common, and expected by most users? Sometimes the cooks can become complacent and start offering insipid food if no one is watching over them.”

    I am sure the GTK developers will be happy to add this feature if you provide them with a patch.

  8. Γριφεγ Γθωαφ says:

    @Loïc:
    > I’m not sure i really need more than one terminal if the others does exactly the same thing.
    That’s exactly where Debian, Gentoo & BSD differ from Red Hat, Ubuntu, etc… With the latter you get GNOME Terminal and nothing else (by default). With the former you HAVE to choose from about 20 available options, 15 of which are completely inadequate.
    > It’s not magical that typing metacity –replace will work if you use kde or any other desktop manager.
    That command won’t work with most window managers. That it works with kwin is a special case.

    @rm42:
    If I want to rename a file, I don’t go to the Open dialog. I never used an OS which allowed rename in there and I never missed it. Perhaps you are just used to Windows’ quirks too much.

  9. rm42 says:

    Andreas,

    I have always wondered what is behind the refusal to add this feature that so many people want. I can envision two reasons for this.

    One of them is that the gtk code is so difficult to work with that it makes it makes it too expensive, time wise, to do so for the maintainers. If what you say is true, that “the GTK developers will be happy to add this feature if you provide them with a patch”, then that theory would seem to be true. No shame in that. But, why not say so instead of giving the “simplicity” excuse.

    The feasible reason is that the maintainers indeed don’t see the need for it. That brings us to …

    Γριφεγ,

    I know it is hard to see the usefulness of a feature that you have never used or that you are not accustomed to. It is hard to make Windows users understand the usefulness of having multiple desktops or being able to have two or more users using a single computer simultaneously, for example. however, If those features were available in Windows and latter taken away there would be an outcry. Being able to rename files and folders inside a File Save/Open dialog box is a feature that is very frustrating to do without once you have gotten used to having it.

    http://ubuntuforums.org/showthread.php?t=413457
    http://ubuntuforums.org/showthread.php?t=373463&page=3

    So, if it is just a matter of understanding why this feature is important for many, it would nice if the gtk maintainers listened to its users a little more attentively. This reminds me of the issue that arose when the Nautilus developers wanted to make “Spatial” the only option for navigating through folders, in spite of the repeated pleas for an alternative. Thankfully, the maintainers finally acquiesced, but I think Gnome lost a lot of users due to that incident.

  10. tantra says:

    very good apology.

  11. Peter says:

    Linux IS IMHO about CHOICE*S*. And these include Larry Wall’s kind of choice: There’s more than one way to do it.

    So a distribution should provide a common baseline (possibly without much choice at all _within_ the baseline). Good concept.

    But the distribution shouldn’t get in the way, when the user does make a choice. Be it kde vs gnome vs a low-weight windowmanager-only setup. Or setting up audio, when requiring networked audio, etc pp. Or a custom kernel because of some special driver needs.

    This not getting in the way also implies the distribution to NOT mess up a user’s concious choice in custom configurations during standard updates or security updates.

    Done correctly, a limited core distro thus enables freedom (not only of choice). Packaged offerings beyond the core are convenience, maybe with a little less testing.

    Done wrongly, you get into the way of the user, making easy things maybe just strange, and hard things impossible.

    Done really wrong, a limitation of choice can cripple users permanently, e.g. mentally making them near-blind to more efficient alternatives. When that happens, any teaching is near impossible. This may be as trivial as keyboard and mouse (”huh, what’s the super-key?”) or even list-selections in a Gui. Or as absurd and crippled like evince’s print-dialog that doesn’t allow the user to specify a custom print command to use.

    So it boils down to: Please keep Linux an empowering technology, try not to step on the user’s toe willfully and allow him/her to choose.

    “Linux is about users, and what’s best for them.” - it’s our option to provide a baseline for users. But surely it’s NOT our place to dictate them what to do. Just putting sharp tools back into the drawer after use will have to do.

    There’s already far too much in everyday life trying to dis-empower each of us. No need to copy that.

    cu
    Peter

  12. stolennomenclature says:

    The author says “At the end of the day, Linux is about users, and what’s best for them” - thats not what it really is but what it should be. Linux, like most free software project, is created by the programmers FOR the programmers. Its about what they find fun and challenging, what suits them. When a free software programmer tires of a project, they simply abandon it. Why should’nt they? They are often not being paid for it.

    When people say Linux is about choice, they are simply making a virtue of a necessity. There are lots of distros - thats a fact. Either you condemn and criticize the stupidity of that, or you make it into a virtue. If you are a Linux or free software advocate then you do the latter. Hopefully if you are unbiased, honest and have some intelligence, you would do the former.

    Witness the consternation people are expressing at having just TWO new HD disc standards (Blu-Ray / HD DVD). Obviously end users of computers dont really want more than one operating system, in fact the average user (rather than hacker) doesnt even really want to know that there is such a thing as an operating system, any more than they want to know what CPU is in their DVD player.

    But because Linux is written by hackers whose very lives revolve around writing and fiddling in general with software, to them having tons of different bits of software to diffle with is wonderful - but it never is or has been the case with actual users. But then Linux is not about users - its about hackers.

    Thats why the easiest to use Linux systems, that benefit the end user, are created in general by commercial businesses, motivated by profits, who need to care about the customers (who otherwise wont buy the product), rather than the community hackers who care primarily about themselves having fun.

    Let me apologies now to the genuinely motivated altruistic individuals out their who do write software for the benefit of others and not for selfish pleasure or for money - namely Richard Stallman and the handful of others.

  13. stolennomenclature says:

    The most absurd thing about the Linux world is the fact that the applications are bundled with the operating system. The two should be completley seperate. Linux should be made to conform to a standard, such that any application can be installed and run on any Linux system. You shouldnt have to install a Fedora RPM on Fedora and a SUSE rpm on Suse.

    Or if the present system is to be maintained, then be honest and dont call the distros Linux. This gives the (wrong) impression that these operating systems are somehow standardised and compatible, when they are not.

    Remove the word Linux and then people would see the “distros” for what they really are - essentially completely different operating systems (albeit derived from the same core though that is irrelevant in terms of end user program compatibility).

    As an example, the Fedora “Linux” system is not like a Sanyo DVD player - any make of DVD player will play any DVD. But the Fedora “Linux” player will not play a Suse Kaffeine program. So whilst most people would applaud the choice of having hundreds of different brands and types of DVD players all of which play the same type of disc, they would not appreciate having hundreds of different types of incompatible disc formats. Unfortunately its the latter scenario that corresponds to the Linux situation.

    If the reality of the distros was not covered up by the misleading umbrella of Linux, then people would realise what is really happening here. We are not getting hundreds of minor variation on Linux, but hundreds of completely different and incompatible operating systems. And that kind of choice benefits no one.

    Linux may offer tons of choice, but its a bad type of choice that no one who can see the situation clearly for what it really is wants. The sooner this choice dissappears the better for all computer users everywhere.

  14. Andrey says:

    “The author says “At the end of the day, Linux is about users, and what’s best for them” - thats not what it really is but what it should be.”

    Yes, Linux is not about users. No, it should not be. No, it is not by programmers and for programmers.

    There are 2 distinct kinds of Linux. The first one is free Linux resulting from the cooperative effort of individuals and corporations. Cooperating programmers are part of it, but there is much more. This Linux is not and never will be about users for evident reasons. For example, some developers use rpath as the standard way to build their applications, while some distros, like Red Hat, prohibit rpath unconditionally. Nothing can be done here.

    The second kind of Linux is the commercial one. It is not for programmers and not for users, but for profit. The best way to get most profit is to sell crap. For example, Windows XP routinely fails to kill a process and eventually starts to display the task bar under other windows. This does not make MS profits smaller.

    Commercial Linux wants people to beleive that “Linux should be about users”. This makes it easier to take other peoples’s work and resell it to “users”. When successful, it produces the greatest Linux crap. For example, try to configure network access through KDE applets in slackware. The applet will say: “Sorry. I do not understand you distro”. Better than making damage, but network managment should not be attempted by a desctop environment project in the first place. KDE people were just fooled into the “about users” thing.

    Another example: mono is Novell backed and, consequently, obsessed with “users”. Its Web site says: “the best way to get mono is the one click installer”. If you run it on Slackware, it installs fine, but mono does not work. If you fix that, then you find out that the installer never figured out what is already installed and it is time to remove lots of obsolete libraries.

    Conclusion: do not allow people from commercial Linux to blur the boundary between commercial and free!

  15. Γριφεγ Γθωαφ says:

    @stolennomenclature:
    > Linux should be made to conform to a standard, such that any application can be installed and run on any Linux system.
    Any properly packaged application can be installed and run on any Linux. Take Firefox for example. Or the Flash Player. Nothing is 100% perfect, but then, there are many Windows programs which only work on specific versions of Windows.
    Now, I do agree that the Unix standards were made in a different era and need modernisation. They guarantee that any conforming program will compile on any conforming Unix. A standard made today would also cover binary compatibility.

  16. Γριφεγ Γθωαφ says:

    @Andrey:
    > For example, some developers use rpath as the standard way to build their applications, while some distros, like Red Hat, prohibit rpath unconditionally.
    What is rpath, apart from the name of a Linux distribution & company?

    Also,
    @stolennomenclature:
    One more thing, the bundling with applications with the OS I think has to do with Unix being a multi-user timesharing system historically, and you don’t want all users installing their own duplicate of an app…

  17. Γριφεγ Γθωαφ says:

    An other thing (I really should organize my thoughts and not hit “Submit” too early), looking at the future, actually most applications will be web-based, and all the user will need will be a browser, so it might make sense to bundle a browser with the OS. And web applications have a set of standards, sort of, and work across many different platforms. So the future looks promising! Now just hope that Microsoft doesn’t succeed with their XBAP or whatever plan.

  18. Bob Loblaw says:

    I like your analogy.

    I would only differ in the fact that it isn’t rare that having “knobs” for the user to tweak is the choice that is best. Take gnome for example. Having the ability to customize how windows/panels/etc behave is a strength that puts it above “one-size fits all” solution you see in other products. This is just one example where user customizable software is a good thing.

    It is easily recognizable that not all system components should carry a “do-it yourself” notation; however it is very important that users have the ability to change their food around once it hits the table (without necessarily being a chef).

    Good article.

    @Andrey:

    In my opinion commercial Linux is just a type of organization that takes a free product and acts as a guide to organize and distribute the thousands of open source projects that live in the Linux world. For most users this is a daunting task. And as far as your KDE network-setup woes, there is nothing stopping slackware folks from patching KDE to make it “understand the distro”. It’s certainly not a commercial Linux company like Redhat’s fault.

    And as far as your notion the desktop environment shouldn’t handle network setup I’d respectfully disagree. It’s great to have low-level tools to do things like networking when you want to tweak things manually and have fine-grain control. But if you are a scientist using the system to research atomic structure, it’s a waste of your time. If a tool like NetworkManager can make networking seamless then its a good tool for those type users.

    Good luck in your endeavors.

  19. Andreas Tunek says:

    m42:
    “One of them is that the gtk code is so difficult to work with that it makes it makes it too expensive, time wise, to do so for the maintainers. If what you say is true, that “the GTK developers will be happy to add this feature if you provide them with a patch”, then that theory would seem to be true. No shame in that. But, why not say so instead of giving the “simplicity” excuse.

    The feasible reason is that the maintainers indeed don’t see the need for it. That brings us to …”

    I think that the current GTK developers do not want to spend a lot of time implemeninting this feature. And I don’t think any GTK developer has ever given the “simplicity excuse” for rejecting a fully functioning patch, but I would gladly accept any evidence to the contrary.

  20. rm42 says:

    Andreas,

    I appreciate your comment. It make sense. Reading over some discussions about “missing/removed features” (including the Linus incident), I see that indeed “fully functioning” patches are generally accepted. It also becomes clear that an important factor that determines if a feature is added, or even removed, is the complexity of code. A lot of things are intermingled and sometimes patches tend to overlook some of the repercussions that it causes. When code reaches a certain level of complexity it gets very difficult for developers to see the full picture. Maybe GTK is due for a refactoring? But, when I see articles like this one that say “Lets not interpret choice as an excuse to present 400 knobs to a user and expect them to know what to do with them, and then accuse them of doing things wrong when it inevitably breaks” I can’t help but think of it as an excuse for the real reason competent developer code breaks: Code complexity. Sure, maybe KDE has gone too far sometimes in exposing options, but the fact that they are there and that the code does not break, generally, seems to be a testament to the better code base they have to work with. KDE 4 seems to be addressing the “400 knobs” issue, hopefully GTK will address the code complexity problem too so that we can have a few more knobs than we have right now.

  21. Γριφεγ Γθωαφ says:

    KDE 4 is not addressing any issue. Large parts of it were rewritten, again, without actually fixing any of the problems and generally throwing away what was good in the process. Take the panel for example. It used to follow the Qt theme in its look and allowed one to reorder items. Note that the Gnome panel has both of these features. Now the new KDE 4 panel looks completely out of place, doesn’t follow the Qt theme, one can’t reorder the gadgets, and some were dumbed down, for example the clock doesn’t even display the date now.
    I try out KDE from time to time because Gnome is not always satisfying, but I never found it usable as my main desktop. The actual applications like Konqueror or Kmail crash on an hourly basis during normal use. I always end up using Gnome/GTK apps and then think to myself, I could as well be running them under Gnome and get a consistently looking desktop.
    The Qt API is better designed than the Gtk API, but I don’t think Gtk is so complicated that a rename function couldn’t be added to the Open dialogue. I think it’s simply a case of trying to avoid setting precedent, because Gtk would get nowhere if they started to implement everyone’s favorite pet feature request.

  22. rm42 says:

    See here:

    http://www.kdedevelopers.org/node/3174

    and here:

    http://www.linuxtoday.com/news_story.php3?ltsn=2008-01-14-004-26-OS-HL-KE-0003

  23. rm42 says:

    Γριφεγ,

    Another thing. What implementation of KDE did you try? Red Hat’s? To get a good feel for what a good KDE implementation is like I would recommend you try PCLinuxOS. Fedora and Ubuntu are mainly focused on Gnome and do not put the same amount of effort to their KDE desktops (although they are getting better). In PCLinuxOS I don’t experience any of the problems you talk about.

  24. rm42 says:

    Γριφεγ and Andreas seem to be in disagreement. Andreas seems to think that if a functional patch was provided the feature would be added. The maintainers just don’t have the time. Γριφεγ thinks that this is not the case. He seems to think that even if a patch was provided the feature would not be added “to avoid setting precedent, because Gtk would get nowhere if they started to implement everyone’s favorite pet feature request”. What is it then? Any one knows?

  25. Andreas Tunek says:

    m42:
    I don’t think we are in disagreement. There is a difference in implementing something and simply adding a “fully functional patch”.

    Having read some GTK code I don’t think it would be THAT difficult to add that functionality, but it takes time that could be spent on more important stuff (such as the new GIO framework) for the GTK maintainers.

  26. rm42 says:

    I give up. :(

Leave a reply