Flexibility - the Core of Open Source

by Pamela Jones
Groklaw

December 18 2005

There is a recent thread on OSDL's Desktop Architects mailing list that I think is interesting enough, I wanted to highlight it for you, in case you hadn't seen it. Linus' comments [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000486.html ], part of which were also posted by Matt Asay on Infoworld [ http://weblog.infoworld.com/openresource/archives/2005/12/linus_on_source.html ], stand on their own, but the general topic is design choice. What matters most? Design focus or user configurability? Can you have both?

Specifically, the thread begins [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000389.html ] with a thought about the printing dialogue in Gnome, complaining it doesn't present the user with all possible options. The Gnome usability team had expressed that there were too many options and that listing them all is only confusing to users:
Frederic told that the options from the PPD file are intentionally mot listed in the printing dialog, the usability team of GNOME was against listing these options. They clutter the dialog and can be more confusing than useful to the user.

But on the other side the user wants to make use of the full functionality of his printer. He has payed for it.

The poster then makes some suggestions to try to make the dialogue all-inclusive, while organized so as not to confuse. Linus responds [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000390.html ]:

I personally just encourage people to switch to KDE.

This "users are idiots, and are confused by functionality" mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don't use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn't do what I need it to do.

Please, just tell people to use KDE.

Specifically, Linus wants to be able to use his mouse a certain way, and Gnome won't let him, although KDE will. It won't surprise you to learn that this elicited some replies. Some Gnome developers expressed that Gnome puts having things work out of the box as a higher priority than providing all possible options. Linus responds that the real issue isn't clutter but capability. If you solve the clutter problem by removing options, it strikes at the heart of what makes Open Source better -- flexibility. Flexibility is the core of open source, Linus says. It's not a corporate monoculture, as he puts it, because it's developed by a broad collection of people from different backgrounds who get together and work together, without preset top-down design decisions or what he calls corporate mind wash. It's customizable. That is its strength, what makes it better. Whatever you want to be able to do, no matter how quirky, you can do it. Here's part of one comment in the thread Linus responded to:

I suspect that what you see as a raging hatred for user configuration is instead just a symptom of what we consider important in GNOME. We are willing to prioritize "working well out of the box" and "consistent and easy to use" over user configuration. So that particular set of features just never bubbles up to the top. As near as I can tell it just is a question of priorities.

Linus replies:

*So the source being open is - on average - not important to people directly. Even major developers only work on a small part of the whole stack at a time, they don't go around changing all the programs they use to suit them. *

*But _indirectly_, the thing that open source really excels at, is the flexibility it offers thanks to having lots of users, and lots of users whose needs get _heard_. THAT is the core of open source. You've got different kinds of people that get attached to a project. It's _not_ a corporate mono-culture, because people from different backgrounds can get together and work on it _without_ going through the corporate mind-wash.*

And to me, gnome is killing itself as an open source project, because it ends up dismissing exactly that thing. *Having strict UI rules ("The HID says so-and-so") that are really a religion that you're not allowed to question. The whole notion that things are supposed to be done just one way is antithetical to what makes open source successful in the first place.*

I think the KDE development process has been a lot more "lively", and I think a _lot_ of the reason for that has been that they haven't allowed the "interface nazi" kind of stifling of what people feel they need to do. Read the recent KDE-3.5 release announcement with the "visual guide to new features", and you can _feel_ the energy. Sure, they have three different kinds of desktop choosers. So what? You don't have to use them. But the capabilities are there if you want to.

And I think that's important. It's important, because that developer energy, in the end, is what get things done. And as a side effect, you will automatically end up with a system that understands that defaults may be good, but that different people have different needs and views. Because you had a very diverse group of people that worked on it.

So developers are more energized, and I think users are also automatically happier. They may not even realize why, but I believe it's to a large part because their needs are taken care of - not necessarily because they ask for it, but because the developers themselves are more varied and thus tends to have more different needs, and often took care of the different needs of the user base to some degree automatically.

This, btw, is also why a "enterprise desktop" should never be allowed to drive development. It is, by definition, boring and same-old, same-old.

And if you don't see the parallels with "enterprise UNIX" and "Linux" here, I think you're blind. The thing is, Linux (the kernel) got better than just about any enterprise Unix kernel _not_ by trying to develop itself for the enterprise, but by allowing and encouraging different kinds of people to all scratch their own itch.

*Yeah, the whole development process is a bit more chaotic, and maybe a bit more "cluttered" and even scary, but the end result is BETTER. And yes, Linux (the kernel) has a million drivers that the "serious guys" don't care for. But that wild and crazy thing is exactly what made Linux a success in the first place.*

You can see the immediate response by Havoc Pennington, disagreeing with Linus in part, here [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000506.html ], followed by more from Linus [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000453.html ]:

The fact is, developers don't know what their users are going to need. That's a very fundamental issue in any software engineering. The other, almost as fundamental issue, is that asking users is usually not very productive either, because (a) different users will give you different answers and (b) users often don't even know.

So when you ask "which flexibilities do you consider important", you're pretty much BY DEFINITION asking for something senseless. It's akin to asking how many angels dance on the head of a pin.

But the fact that users and developers don't know does NOT mean that customization is bad. Quite the reverse. It means that defaults make sense, but since you don't know what they'll be doing, you should always strive to have ways to let _them_ make the choice when they have some reason the default doesn't agree with them.

Those users may not know before-hand (which is why asking them is pointless), but people actually _like_ twiddling around, changing fonts and personalizing their machine.

To round out the conversation, here's Havoc again [ http://lists.osdl.org/pipermail/desktop_architects/2005-December/000471.html ]:

To me GNOME (and the Linux desktop in general) is stuck in an untenable intermediate position; it's trying to make that group [engineers] happy, and enterprise purchasers, and also the proverbial "home user." And while in theory you could do that, in practice I think it's nuts, because resources are finite, developer cultures can only prioritize so many things, etc. A design focus is necessary and so are hard choices. Another way to think about it is that commoditization and innovation are very difficult to pursue at the same time with the same organization(s).

Here's my input, for what it's worth, as one home user: you don't know me, so you don't know what I like to do with my computer, so please don't choose for me. I probably don't know in advance either, so just develop everything you can think of and have time to code, and I'll experiment. By that I mean, choose a default if you wish, but not without giving me a chance to alter even that, and don't remove any choices from the menu, please.

Are there too many choices in GNU/Linux? Can there be too many choices? Not if the one you want is the one that is left out. On a related theme, sometimes folks assert that what GNU/Linux needs to really make it on the desktop is to decide on one desktop version, one text editor, one browser, etc., so users, particularly enterprise users, will be at ease.

I don't care if others want to do that, as long as I don't have to. What I love is all the choice.

I tend to use KDE, personally, but I use Gnome stuff too, and I typically install them both. I love Evolution, guys, and I don't think anyone else can hold a candle to it. I wouldn't be interested in any distribution that didn't offer me both KDE and Gnome. And I can't live without blackbox [ http://blackboxwm.sourceforge.net/ ]. When Mandrake, now Mandriva, left it out of the install options in one upgrade, after having offered it before, I was so distressed, it finally forced me to learn how to install applications without a GUI. It turned out to be easier than the GUI, once you take the time to learn how, and it started me down a path that taught me eventually that GUIs are just what some developer thinks you'll be needing, as opposed to all that the computer or application can really do, but that's another story. It's related, though, to our theme, if you think about it.

What is it that I love so much about blackbox? Here's the explanation [ http://blackboxwm.sourceforge.net/AboutBlackbox#WhatsDifferentAboutBlackbox ] from the SourceForge page describing what is special about blackbox:

It's very simplistic; some might even perceive it as ascetical or downright barren. When migrating [ http://blackboxwm.sourceforge.net/BlackboxMigration ] from an environment filled with images, eye-candy and gadgets, the typical Blackbox desktop can shock a new user due to the sheer amount of empty space. It's called screen estate and some people value it and want as much of it as possible. It doesn't have to be this way - you can add most of the tools and gadgets that you have in other environments.

Blackbox is very minimalist in its approach as a window manager. It manages windows, period. It doesn't do desktop icons and shortcuts, keyboard handling, flashy menus, tools and gadgets. All of these are available through 3rd-party tools and add-ons, which you can add to your environment as you please. It's just not Blackbox's job to provide them.

Blackbox is very flexible! By sticking to the basics, but implementing common standards [ http://blackboxwm.sourceforge.net/StandardsCompliance ], it allows scores of 3rd-party tools to be used to expand its default functionality. You can use Blackbox as the foundation and create any kind of desktop you can imagine!

No taskbar. Once you iconify (or minimize) a window, it's completely hidden off the desktop. You can retrieve it from a desktop context menu. Window shading (showing just the window bar) and multiple virtual desktops are provided as alternative ways of clearing up the desktop. (Note: taskbars can also be added, starting with version 0.70, through 3rd-party tools.)

Notice that implementing common standards is what makes it possible for third-party tools to build on the common foundation. Yoo hoo, Massachusetts. Don't let anyone tell you proprietary extensions don't matter.

When I first discovered blackbox, I told a friend that it was like seeing my first snowfall. Just magical. And mind-altering. Having been accustomed to Windows, at first I couldn't believe that I could have almost nothing on my screen. No crayon colors. No popups. No helpful anything, just an elegant, almost empty screen, that did what I asked it to do and not one thing more. It''s perfect for days when I am on sensory overload. But I can design whatever I want, excluding whatever features I hate about desktop design. I love having the choice and being able to do what I personally like. Even my Mac is boring in comparison, beautiful as it is.

On the other hand, if I set up a Linux box for a friend or relative, I recognize that some folks do better with less. I would remove a lot of typicial options (my mom doesn't need any servers, for example, and if she ever needs MySQL, I'll know the end is nigh), because when you're just wanting to do email and surf, maybe write a letter, you don't need 16,000 software applications. Anyway, Bruce Schneier recommended once, I read, that you only install what you are sure you actually will use, to minimize security issues. That made me think about Ubuntu's philosophy [ http://www.ubuntulinux.org/ubuntu/philosophy/document_view ], including that it should 'Just Work' out of the box. Here is the Ubuntu way [ http://www.ubuntulinux.org/ubuntu/ ]:

When you finish your Ubuntu installation your system is immediately usable. You have a full set of business productivity applications, internet applications, drawing and graphics applications, and games. That one CD gives you a very good desktop environment out of the box, with many applications for business, home and personal computer users installed by default. There are thousands of additional pieces of software that are just a few clicks away, but we've done the hard work to get the basics in place easily and effectively.

What they mean by that is that unlike most default GNU/Linux distros, Ubuntu has preselected only one browser, Firefox, one office suite, OpenOffice.org, one email-calendar client, Evoluton, etc. In the GNU/Linux world, that's mighty lean. Ubuntu installs the default system [ http://www.ubuntulinux.org/ubuntu/applications ] -- the installation fits on only one CD -- with an operating system and 1,000 software applications they've selected out of 1,300 fully supported applications Ubuntu offers, but it also makes 16,000 available in four categories [ http://www.ubuntulinux.org/ubuntu/components ] if you decide you want to try them, and of course there's always more you can find for yourself on the Internet. That's kind of the best of both. But the 1,000 default applications are still more than my mom would ever use. She doesn't need NTP or Samba for Windows file sharing, for example, unless she is leading a double life.

A basic installation with options is fine. But the OSDL Desktop Architects discussion takes it one step further, as I understand it. What if you establish design "rules" for developers, so that the end result limits what users can do in the cause of simplicity and ease of use? I resonate to what Linus had to say, as an end user, and perhaps you do too. He's talking from a developer point of view, but the discussion is relevant to all of us, because if choice is removed by developers for our "benefit", it has the potential to alter what GNU/Linux is all about, and that is flexibility and choice. On the other hand, if I owned a business, the last thing I'd want my employees to have it total flexibility and choice. There is a difference between a business user and a home user, in that sense.

By the way, I not only like having multiple text editors, I actually use them. Well, three of them, anyway, regularly. And I like trying them all. Now, nobody actually needs more than one. Emacs, for example, does everything but your laundry. It probably does that too, if I just knew how to make it happen. But it's fun to try different editors, and there are times when you want a simpler text editor. Sometimes one is better at a certain task, or suits your way of working. Sometimes, as a female, I want to look at something prettier. Sometimes I want one I can figure out quickly. Sometimes I'm just sick of looking at the same thing. I'm a mood dresser, and I change my desktop regularly for the same reason. It's easy in GNU/Linux, where you can set a different look for as many desktops as you please, and just switch to whatever you feel like that day.

It's kind of like taking a car for a test drive. You may not buy the car, but it's fun to whirl around in it a while. If someone preselects my options and decides for me that I should have only one text editor then you spoil my fun. It's like deciding that there will be no more stick shifts. You can only have automatic. Some people prefer stick shifts, because of the greater control. Why not let people choose what they want? And that is absolutely what I love about GNU/Linux, choice, that I can enjoy playing with my computer and making it do things the way I personally want or need.

I'd also like to say that having source code is valuable to end users even if they never change it. It's valuable for security reasons to be able to look at things, even if you don't understand what you are looking at. Let me explain. When I was in Windows, back when I was in an office setting, and I suspected malware, I'd take a computer that wasn't infected and compare file contents with an identical computer that was suspect, using Knoppix and Emacs to compare and remove any odd bits. It was a primitive system I just thought up myself, and you are all free to make fun of me, but the truth is, it usually worked. It did also sometimes mess things up thoroughly, before I learned to research before I removed things. Reinstalling Windows over and over from scratch definitely inspires caution before you alter anything in Windows.

Primitive, yes. But, as it turned out, useful too. My point is this. I couldn't read the code, but I could eyeball, compare, and see things that looked different. And most of the time, that solved the problem. It also made me feel more comfortable with computers. I no longer saw it as a black box doing God knows what. It was apparent from looking around, and being able to look around, that it was just software and hardware that fellow humans had designed to do certain tasks. It may sound silly, but understanding that is what made computers fun for me, at last, whereas I hated them before.

And look at Geeklog. It is licensed under the GPL, which is one important reason why Mathfox and I picked it. When we started using it, it didn't do some things we eventually decided we wanted Groklaw to do. So we (the royal we here) coded it to do what we wanted. One example is News Picks (stevem coded that functionality). After he finished, he gave it to Geeklog, so anyone wanting to do a news collection on their Geeklog site could. Now, I can't code, but I knew someone who could, so I was able to make my website do what I wanted. I wasn't locked in to preset choices made by someone else who can't possibly know what I might want. Source code means I can do whatever quirky thing I want. How can that be anything but positive? Having access to source code is a fundamental freedom that sets you free from other people making your choices for you.

So, I hope you guys can work this out, so we don't have to choose design focus or flexibility. If you can't, while I value ease of use, I don't want to give up flexibility and choice to get it. I guess I want to be offered both: a simple default I can elect, and unlimited choices.

As architect Mies Van Der Rohe said once about design, God is in the details.

03:28 PM EST

Copyright 2005 http://www.groklaw.net/ - http://creativecommons.org/licenses/by-nc-nd/3.0/