The first time I saw Linux was in the back of a computer shop while a tech was fixing my computer. An enthusiast had brought his machine in, and was boasting about how much more complete its applications were than anything on Windows.
"Look at this," he said, turning on a screensaver that showed a 3-D maze of pipes. "There's valves on the pipes!"
At the time, I edged away from him, rolling my eyes. But, in retrospect, he had a point. One of the best things about free and open source software (FOSS) is that its developers often do attempt to write software that is the ultimate in its category.
They remind me of the writers of the eighteenth and nineteenth century who tried to write the definitive reference work on their subject, whether it was the decline and fall of the Roman empire or how diversity leads to the creation of new species. They've caught the habit of perfection, and I have to admire them.
Their behavior is something that you can't expect to see in proprietary software. When you are worried about getting an app to market, perfection means delay. Instead, proprietary software usually settles for good enough, even when trying to match a rival product's features or to take the lead in the features race.
By contrast, despite the growth of open source in business, FOSS still has room for developers who want to tinker until they get the code right. After all, their name is on the code, and who wants to take credit for a kludge?
At its worst, this struggle for perfection produces meaningless features like valves on a screensaver's pipes. At its best, however, it produces apps that remind you of why you were excited when you sat down in front of your first computer.
In an era where apps on all platforms seem to have a stagnant features list, the developers of perfectionist apps keep coming up with something new, and, frequently develop the interfaces to cope with the resulting complexity.
Not sure what I mean? Then maybe these examples will make the point clearer.
Amarok is the most commonly used music player on KDE. Like KDE itself, Amarok has received some rough press because of its transition to KDE 4.0, and some people are still missing features that were present in earlier versions. Even so, the recently-released 2.2 has an impressive set of features.
Like any music player, Amarok allows you to play tracks by albums or by your own play lists, and to listen to podcasts. But what sets Amarok apart is all its extras: a detailed search and sorting functions, a middle pane that locates relevant lyrics and Wikipedia entries, add-on scripts, automatic location of cover art and more, all in a interface that is customizable and easy enough to start using in seconds.
An especially powerful feature is the ability to create biased random playlists. You can, for example, specify that an otherwise random playlist include 25% of a particular artist or a genre, or 80% songs that are less than three minutes long.
Amarok does so much more than simply organize and play tracks that I can safely say that it includes features that I never would have thought of on my own. But, now that I've seen them, these features seem indispensable. Somehow, no other music player compares.
Where other solitaire collections have a few dozen games, Pysol has nearly 1,050. In many distributions, it also contains several dozen Mahjongg games, although for some reason the Debian package omits them. It also includes several dozen-card sets that range across time, cultures and size to provide something for everyone.
I can't say whether more than 1,050 solitaire games exist in the world, but, if they do, I wouldn't know. I still haven't played all the games Psyol had when I discovered it ten years ago -- and it only included a few hundred then.
K3b was one of the first FOSS CD burners with an easy-to-use interface. For a couple of years, it was the main reason that I kept KDE installed while primarily using GNOME.
Today, K3b has become the application for everything to do with CDs and DVDs. Using K3b, you can burn audio or data disks, fixating them or leaving them open so you can add files later. You can copy disks, or burn .ISO images. You can erase CD-RWs or format DVD ±RWs, or create eMoviX disks so that you can play movies on GNU/Linux with free formats.
Yet, with all these features, K3b still manages to be simple to use while allowing you as many options as you want.
Recently, I also discovered that K3b was the best tool available for ripping audio CDs. Alone among the various alternatives, K3b not only rips tracks and gives you a choice of how to name them, but also detects and adds tags automatically, reducing the entire operation to less than six unattended minutes -- about half the time that other tools require by the time you manually add some or all tags.
Although K3b may not be a showy app, I'm constantly grateful for such features.
Firefox and its extensions
By itself, the Firefox web-browser is like Toyota-- just enough better than the competition to have an edge. But add its extensive set of add-ons, and Firefox becomes a must-have for customization.
Admittedly, many recently added Firefox extensions are thinly disguised enticements for you to use a company's services. Also, one extension may conflict with another.
Even so, with nearly 10,500 extensions listed, you can probably find at least a dozen or so that will add the functionality for you to browse the Internet in the way you would prefer.
For instance, being a habitual user of tabs, I have a number of extensions that allow me to use them more efficiently. I have one extension that searches all open tabs to save me time and another that reopens the last tab closed to counter-act my over-enthusiasm for closing tabs that I am not immediately using.
Then, because I can have over twenty tabs open at a time, I use another extension that allows me to save collections of tabs so that I can quickly return to them if a particular project spans several days. The efficiency and time-saving quickly adds up, and I appreciate not having to change my work flow to match the limitations of the application.
Most people are used to thinking of digiKam as a tool to download photos from your digital camera. digiKam still does that, but if you haven't been keeping an eye on the development for the upcoming 1.0 release, you're in for a surprise.
In its most recent version, digiKam has expanded into what might be called an image manager. In addition to cameras, digiKam now helps you transfer pictures between your computer and sites like Facebook and Flicker. It also adds extensive editing tools that include both features like brightness and contrast and a small set of filters, but also red eye correction and captioning.
In addition, digiKam includes numerous features for sorting and filtering -- a must for the large collections of images everybody seems to be accumulating these days. These features include your personal rating of pictures, as well as the usual meta-tags. The application is also the first to take advantage of KDE's new geolocation abilities, allowing you to tag images with a geographical location.
Only in free software
Besides constant efforts at perfection, what such apps usually have in common is an implicit recognition that one workflow does not work for everybody. Their proprietary equivalents tend to give users little choice of how they work, but these apps are more flexible.
And while many usability theories would suggest that such a combination would lead to chaos, that has usually not happened. Instead, many completist apps have responded to the challenges of this combination with tightly organized yet easy to use structures.
The results are not always flawless. For instance, Amarok's local collection list does not always give the same results twice running when you update. Similarly, digiKam should be more consistent about giving features the same name in the main and images editing windows. Yet what is surprising is how few of these problems exist -- and how quickly they are generally fixed.
What interests me about these completist apps is that they are commonplace in FOSS and rare in proprietary software. The reason is probably that FOSS has more demanding and independent-minded users, many of whom are also developers and in a position to insist on their own preferences
Still, whatever their origins, these apps are reason for celebration. They prove that FOSS can not only match proprietary software, but exceed it. Just as importantly, they show that simplifying and removing features is not the only way to produce usable software, and improve the everyday work of thousands.
At a time when the community seems about to collapse under the weight of petty feuds, they are a welcome reminder of how much FOSS can accomplish.