- BIG NEWS:
- AIG
- |
- Financial Crisis
- |
- Housing Crisis
- |
- The Fed
- |
Like nearly everyone else these days, I use computers to write, read email, browse the web, store music and photos, and generally organize my life. Unlike most people, I'm using a free operating system, rather than Microsoft's Windows/Vista, or Apple's Mac OS. Specifically, I'm using Ubuntu, a popular distribution of GNU/Linux.
Ubuntu is but one of many free software distributions. Distrowatch lists 10 major and more than 100 minor Linux and free BSD distributions, many of which are minor remixes of a handful of the major distributions.
I would encourage others to think about migrating to Linux. It's now possible to buy laptops from Dell with Ubuntu pre-installed, or to install Linux on one of your computers, either as the sole operating system, or as one that co-exists with Windows or the Mac OS.
Why would anyone try Linux? Well, it does put some fun back into computing, and the newer distributions are both powerful and elegant, with eye candy, cool programs, a very good usability. There's more, however. Linux is truly a "free" operating system, with an emphasis on freedom. It is created by and for users, and as a platform, it creates a different relationship between the users and the Internet than do the Microsoft or Apple commercial alternatives. It's also an important experiment in how information technologies are created and managed, and the success of the experiment depends somewhat on the ability to attract users.
It's hard to explain the experience without trying it. Using any Debian type Linux distribution (such as Ubuntu), it is very easy to find, install and update software. Pretty much everything I use is available at a zero price. Linux isn't a program, but rather a collection of thousands of programs that work together, each maintained by different communities. Most share the source code they develop, allowing others to copy, modify and incorporate code into new and even competing programs.
The most popular office productivity software is now from OpenOffice.Org, a project supported by Sun, IBM and many individuals and small firms. Version 1 of Open Office was lousy. Version 2 was much better, and I'm looking forward to Version 3, which will be released soon. Firefox is the most important of more than a dozen web browers that run on Linux. An increasing number of commercial products work on Linux, such as Google Earth, Google' Picasa, Adobe's Acrobat Reader and Flash. Most of what people expect on a laptop already works well on Linux, but that is not really the main point. Linux is a possible future, one that isn't controlled by Microsoft or Apple, and one that responds to a different set of values. Ubuntu is so good that it now seems plausible to anticipate a significant shift from Apple and Microsoft to Linux. This would be no small thing, increasing the odds that the Internet will continue to develop in ways that empowers users. Linux provides a powerful counterweight to companies or governments that undermine innovation, privacy and freedom, benefits that should not be taken for granted or undervalued.
Both Microsoft and Apple want Linux to fail as a "client" operating system. Apple has yet to support the open document format (ODF), or make its popular iTunes or Safari programs available for Linux. Microsoft has not released its widely used Microsoft Office program for Linux, and is pushing for a series of proprietary or Microsoft controlled file formats that are not fully implemented on the Linux platform. Governments can help by using procurement policies to ensure that data formats can be implemented by more than one software program in at least the three leading operating systems, something that will be explored in some global forums.
In general however, it will be important for individuals to switch to Linux, not only from Microsoft, but also from Apple. Today many free software proponents don't use free software themselves. Because of this, they often don't fully understand or appreciate the ways the platform works, the policies (by individuals, organizations, regulators or governments) that would make it work better, or the interesting ways that innovation is created and managed in an environment where knowledge becomes community property. I'd like to use analogies to better explain the difference between talking about free software and using free software, and I'm sure there are plenty -- is reading about sex the same as having sex? Can you really understand foreign policy without visiting foreign countries?
Today there are enormous pressures to monopolize data formats, control multimedia content delivery to users, introduce deep systems of surveillance into the networks, and other disturbing trends. There are also very powerful examples of the benefits of more openness, freedom, competition and collaboration. There is, I believe, an increasingly important social aspect of personally embracing the use of free software. There are of course some challenges, rough edges here and there -- nothing like even a few years ago, but they do exist. But they are manageable for many users.
Because of the stakes, people should increasingly be thinking of free software as a social movement. It is not only about a small number of programmers and engineers. It is about everyone who cares about the future of knowledge ecosystems.
Follow James Love on Twitter: www.twitter.com/jamie_love
Want to reply to a comment? Hint: Click "Reply" at the bottom of the comment; after being approved your comment will appear directly underneath the comment you replied to
(Concluded)
11. This point may be outdated. I'm not sure. It was valid years ago. Since then, every time I have tried Linux I have realized before reaching the point where this would be relevant that Linux still wasn't ready for prime time. But given the state of copy and paste between GUI apps, I suspect this is still a problem, and so: resources need to be put in standardized locations. If you want to install a font, you should only have to install it in one location to have it show up in EVERY program. Likewise sounds, service plugins, etc. The Mac has been doing this right since about 1991. Windows is still a bit better, but both are better than Linux was when last I tested this issue. Mac OS X has this perfected: resources which are part of the Apple-supplied OS go in /System/Library; system-wide resources go in /Library; user-specific resources go in ~/Library. Programs put system-wide support Stuff in /Library/Application Support/[program name], and user-specific support in ~/Library/Application Support/[program name]. If you are authenticating your login against a server, the server can even specify a share point to be a network-level version of /Library. It's an elegant solution which is obvious to users. Of course, to support such a thing on Linux would require (again) an OS-level API supported by programmers.
(Continued)
10. X11 makes both Windows and the Mac look terrific. It's nice to abstract the display from the machine, which is the feature of X11 which Linux advocates brag about, but that's a feature almost nobody particularly wants in the real world. One thing people DO want is standard theme/widget library, but X11 doesn't do actual GUI stuff, so Linux has ended up with at least 3 significant GUIs which use widgets which don't match, require extra resources to run interoperably, and divide development effort significantly. All the GUI projects should incorporate a full suite of configuration utilities for all parts of X11 as part of their control panel programs -- there is no excuse, for example, for being unable to customize the trackpad on a laptop because Xubuntu thought all Xfce users would use mice.
(Continued)
9. Plugins should be used to add really advanced features, not basic or medium-basic ones. Big free software projects have a tendency to exclude fairly simple features from the base program and force users to download and install plugins to re-enable them. Where's the Javascript debugging stuff which used to be part of Firefox, and which used to be the main reason to use Firefox instead of Safari on the Mac? Oh, it's in a separate download now. Grrrr! No! Bad! Cut out some the crappy redundant little apps in the default install and use the extra space to make Firefox useful.
9a. Furthermore, plugins should if at all possible correspond to entities in an easily-recognized portion of the filesystem somewhere. (That is, every Program X plugin should be a subdirectory of a directory named "Plugins" in Program X's support directory.) Plugin management within a program is okay -- in fact, given the complexities of the Linux filesystem and GUI it's probably a necessity -- but users should have the option of adding and removing them by hand in a simple fashion as well.
(Continued)
7. Linux has multiple workspaces turned on by default, and wastes space on the screen to track them. Let me share something with you: new Mac users find the Dock to be the most difficult part of the Mac to understand, and I've seen Windows users of many years who still refuse to make any changes to the system tray and program launcher on the Windows Taskbar because it would "take too long to learn". Multiple workspaces should be an option which is turned off and completely hidden until the user chooses to use it. Otherwise, you just force new users to waste extra space on their screens, space they resent giving up.
8. Copy and paste needs to be better handled in Linux and Linux GUI apps. Both the Mac and Windows can copy and paste rich data, including pictures and video, across GUI programs. Linux can handle plain text. It should be possible to fix this -- Windows used to be the same way, and it got better, but it will require Linux programmers to agree on and support a single, shared OS-level API, something they seem to hate to do.
6. If you want wider desktop acceptance, you need to hide the programming guts on the disk as well as in the GUI. Spend ten minutes on Linux doing anything which requires filesystem access, and you realize that programmers resent you for intruding into their realm. There are practically no user-readable directory names (the Mac has "Applications", "Library", "Users", "System", and many others, Windows has "Documents and Settings" and its various subdirectories, Linux hasthe illegible, incomprehensible POSIX-y spectrum of "bin" and "sys" and so on). Hard links are useful from a programming perspective, but they aren't actually necessary and from an average user perspective they are hard to understand (which is why Windows and the Mac make them difficult to make). GUI programs are seldom what they seem to be in the Linux filesystem. And the problem isn't just Linux itself either -- FOSS open-source programs tend to require support directories which have to be either in the same directory as the binary or in some hard-coded location. These aren't helpful in Linux, and they stand out like a sore thumb on ports to other OSes. (One of the rare exceptions to this rule is Firefox, which generally does The Right Thing on other OSes by obeying local data storage customs.) Clean up the HD, please.
(Continued)
If nothing else, Linux should, on the first run or even during the install, profile the existing hardware and ask the user to identify the make and model of each unidentified item, and then (after asking permission) pass any new information back anonymously at the first opportunity, and then give the user the option of passing the information with bug reports as well. Quite aside from better bug reports, this would pay off in terms of improved "supported hardware" databases and better driver detection support. (I once tried Ubuntu on a machine with an early ATI Radeon graphics card. Even though the ATI driver definitely supported that model, it didn't recognize the ID code and therefore refused to activate. I had to manually edit the X11 config files from the console to get even moderately good performance.)
(Continued)
5. Although these may seem unrelated at first glance, they are in fact deeply intertwined: bug reporting needs to be easier in most F/OSS projects, and hardware profiling needs to be improved in Linux. If you use a Mac and a program crashes, a little dialog box comes up asking if you want to report the bug. If you choose to do so, the system lets you describe the bug, and gives you the option (to protect your privacy) of adding a hardware profile. Linux GUIs can't even get a reliable hardware profile -- try figuring out from the GUI how many RAM sticks you have, and in what sizes. Software as buggy as most F/OSS projects has no excuse for making bug reporting difficult. (And Bugzilla installations are no help. Bugzilla is designed for programmers to track bugs, not for users to submit them. From a user's perspective, it's messy and needlessly complex.)
(Continued)
4. Eye candy which is not carefully thought out is just that -- eye candy. Both the Mac and Windows manage to tie their animations and visual effects into the way the OS works (Mac windows shrink into the dock when minimized, for example), so that visual effects reinforce functions. Linux visual effects are often unconnected to function -- a way of showing off technical capability, rather than positive additions to the UI. (I'm looking at YOU, compiz.) Stop doing this. "Because I can" is pretty much automatically bad GUI design.
(Continued)
(1) select a single default theme/widget library for future Linux GUI distros (preferably which is practical, good-looking, and not an all-but-the-logo Windows or Mac ripoff as so many of them are) name it/them "Default" and make it/them always show up at the top of any list of settings, (2) rewrite the theme/widget library selection controls so that when they show what a theme looks like, they also show what the equivalent window controls/widgets look like in the default theme, and (3) make it so that any time a user changes away from a default, a box pops up (with a "Don't show this again" option) saying "Warning: you are changing away from the default appearance. You will be responsible for recognizing user interface elements in your selected appearance. Are you sure you want to do this? [No/Yes]" See? No loss of customizability, but full notification to the user that With Great Customization Comes Great Responsibility.
(Continued)
3. One of the major practical arguments against Linux on the desktop is that the extremely-customizable themes and widget libraries make it hard to do phone support or create recognizable illustrated walkthroughs. (The phone conversations run something like "now close the window" "how do I do that?" "click the close box" "what's a close box?" "the little box in the upper right corner of the window with the x in it" "there isn't a box with an x in it" "well, what boxes are there" "there aren't any" and so on, and so on. If you don't believe that will happen, you've never worked technical support before.) I'm not suggesting that themes and widget customization should be removed -- aside from the practical considerations, I saw what happened when the GNOME project advocated a little bit of uniformity, and I don't want to face a mob with pitchforks. But it needs to be handled differently than it is. I recommend a three-step approach:
(Continued)
2. Quantity is a very poor substitute for quality. One of the biggest problems with Linux, from a usability standpoint, is that instead of one or two really good options, there are usually a bunch of mediocre ones. That applies both to GUI programs, where there are often five horrible (buggy or poorly-GUIed or both) options for a single category, and for APIs, where there are usually multiple options to do the same thing, all of which are lacking in some respect. F/OSS programmers LOVE reinventing the wheel. Stop it.
Ah, comments are finally showing up on this article. Yay!
Since I realize that my earlier comments were critical but not particularly productive, here are some guidelines for Not Sucking which the free software geeks need to start obeying. Some are criticisms of Linux/X11 GUIs specifically, some are criticisms of F/OSS in general. This will be a multi-part post:
1. Users should never, under any circumstances, NEED to drop into the command line, or any equivalent. If your program has significant options which cannot be set from within the GUI, you have failed. If your program has a bug which can only be cleared using the command line, you have failed. If you have a configuration window in your GUI which is just a bunch of labelled controls with no explanation or categorization, you have failed. Linux distributions have finally figured out that users don't want to learn how to "make", but within the OS itself and the programs which run thereupon there are far too many examples of this behavior, which must effectively vanish before Linux will gain a serious chunk of the desktop market.
1a. "You can fix this from the command line" is NEVER an acceptable response to a bug, unless the bug can only be triggered by a course of action which involves a visit to the command line in the first place.
Most people that complaint about free systems, in my experience, is because they are expecting a free version of their proprietary piece of... system. When they see something different, it's total chaos. Dumbness and/or closed minds are guilty. I'm not saying one needs to be an expert; not at all, my father uses a GNU/Linux distro and he's computer knowledge is really small. People, most of the time, don't like change and trying to do the opposite of what the human nature tells us to do is hard.
On the other hand, if you put someone, who never used a computer, using a free system with one of the two most popular free desktop managers (KDE and Gnome) and using a proprietary system, you will see interesting things.
I'm a happy and proud GNU/Linux user. I use gNewSense, an Ubuntu clone with only free software and endorsed by the Free Software Foundation. Installing it, even with language packages downloaded from the repositories, is faster than any Windows version I had the misfortune to use. And it's simpler, much simpler.
I could have just be using Ubuntu, but it's a distribution of the GNU/Linux system that, like most of them, offers proprietary software, and to me that is a privacy and security problem because I can't tell what the hell those apps are doing. How can I know they are not collecting information from my files and sending them to someone?
About the software, there are a lot of excellent apps. Anyone ever tried Kmail, Evolution, Kjots, GIMP, grep, VLC, Firefox, Epiphany, Liferea, Pidgin, Emacs, etc? I'm not a programmer (I can only write an Hello Word in PHP, and badly), just a desktop user, and I have a lot of great tools to work with.
One of the things I like most about free software is not just the justice of the philosophy, where coders and users gain: is being able to participate in a project, even without coding skills. Bug reports, debugs, translations, artwork, anyone can make them.
I'll switch to free software the minute free software stops sucking so badly. I make an attempt at Linux about once a year, and the BEST time was the one where I hit three show-stopping bugs in under an hour. (That was when I tried Ubuntu last time.) My favorite was the one which first made the system updater freeze, then prevented it from ever running again -- when I started researching the bug using my Mac, I discovered that this was a known bug, but since you could clear it from the command line by entering a hugely obscure command, they weren't planning to fix it.
Same goes for OpenOffice. I love the concept of OpenOffice, but really the software is a piece of crap. Most of the crappiness comes from the insistence on using fake UI elements in the name of cross-platform support. News for you: doing this just makes it certain that the UI looks awful everywhere instead of just in Linux.
Free software authors don't "get it", and since they aren't responsible to anyone, they basically have no reason to fix bugs and interface issues which don't directly effect them. Someday there may be a decent free OS, but that time is still a long way off.
You must be logged in to comment. Log in or connect with