May 11, 2012

Innovate or Imitate? Where Linux Lags, Where Linux Leads

In which we debunk the silly canard that Linux does not innovate, but merely imitates. And as a free bonus, suggest meaningful ways to contribute other than cranking out yet more Ubuntu respins.

Pish Tosh Innovation

A long-standing criticism of Linux and free/open source software (FOSS) is it's imitative, rather than innovative. All those hard-working proprietary software companies invest squillions innovating new software, and then lazy Linux hippies ride on their coattails and copy these heroes of free enterprise. A crying shame, it is.

Let's take a look at what "innovation" means, as it's an overused buzzword with a situational definition. Running dict innovation says:

1. The act of innovating; introduction of something new, in
        customs, rites, commercial products, etc.
2. A change effected by innovating; a change in customs;
        something new, and contrary to established customs,
        manners, or rites.

1: a creation (a new device or process) resulting from study
           and experimentation 
2: the creation of something in the mind
3: the act of starting something for the first time; introducing
	 something new


Wikipedia says "The word innovation derives from the Latin word innovatus, which is the noun form of innovare "to renew or change." Some synonyms are invention, creation, novelty, archetype, breakthrough, discovery, fad, and permutation.

When critics lambaste FOSS for not being innovative, they mean "copying our ideas that we copied from someone else, but we pretend ours are original." It's a silly criticism because genuinely original inventions are few and far between. Even sillier is not acknowledging how many commercial products are built on FOSS. Everyone builds on work done by others; nothing emerges from a vacuum. Linux and FOSS can claim many genuine innovations.

Like the open, distributed, de-centralized development model, which the Linux kernel team have elevated to an art form, incorporating contributions from thousands of contributors, absorbing thousands of changes every day (yes, every day!), and somehow the beast works, and works well. Distributed open development depends on a free Internet, which runs on FOSS.

Figure 1: Ada Lovelace, the very first programmer.

Package managers and Linux distribution repositories, rolling releases, live bootable CD/DVD/USBs, super-easy installers, adaptable from tiny embedded devices to supercomputers, multiple advanced filesystems, endless user-customizations, multiple sophisticated graphical desktop environments, recovery and security tools, networking, development tools, interoperability, user control, user freedoms – no other computing platform has all of these. It would take a book to list all the Linux and FOSS innovations.

Innovation isn't just breaking new ground, but improving existing technologies, and making them available to more users. One of the greatest advantages of Linux is the speed of iteration; we can make and release changes and improvements as fast as we can type. Linux can fill important niches that are not attractive to for-profit vendors, and doesn't get enough credit for making high-quality software available for free or low cost, and respecting users. We don't have to "agree" to ridiculous terms of use that take all our rights away and spy on us.

So You Want to be a Contributor: Missing Pieces

As wonderful as Linux is, there are still some gaps. If you're going to be a contributor, consider looking for an unfilled need rather than duplicating an area that is already well-served.

Number One Need

In my sometimes-humble opinion the #1 missing piece is a first-rate accessibility stack baked into every Linux application and distro, and as ubiquitous and seamless as mouse and keyboard support. Accessible technologies should be a priority – for people who are visually impaired, hearing impaired, problems with typing, using a mouse or keyboard, pushing buttons, reading disabilities, or who have any kind of impairment that gets in the way of whatever interests they want to pursue.

Accessibility is a growing problem as everyday devices become software-controlled: home appliances, cameras, industrial machines and tools, vehicles, and good luck trying to live offline anymore. But this is also a huge opportunity for Linux to revolutionize everyday life for people with disabilities, because when it's about code, Linux rules. Not only everyday gadgets that we take for granted, but medical devices like prosthetic limbs, hearing aids, surgical tools and hospital devices. Because another important way FOSS innovates is bypassing gatekeepers and reducing costs, which are two big barriers in medicine. Imagine getting your life back thanks to a few lines of code.

Individual projects such as KDE, GNOME, and various applications include some accessibility features, and applications like the Orca screen reader and Festival text-to-speech are pretty good. But there is only one Linux distribution that aims to be 100% accessible to visually-impaired users from installation to daily use, and that is the wonderful Vinux. Which still leaves out people with other impairments.

Smartphones and tablets have opened up a whole new world of possibilities for accessible technologies. If you want to make an incredibly meaningful contribution to the world, think about devoting your talents to developing first-rate accessible technologies.

Linux Audio. Sigh.

On the one hand, Linux is a first-rate professional audio production platform. On the other hand, Linux audio is still a mess, though not as messy as in the days of yore, when we had a herd of audio subsystems: OSS, ESD, aRts, Phonon, PulseAudio, ALSA, JACK....aye yi yi.

OSS is rarely bundled in distros anymore; when it was changed to an unfavorable license some years ago it was replaced by ALSA, which includes an OSS emulator. Now OSS is under the GPL, BSD, and CDDL licenses, and you can download and install it for free if you like. ESD and aRts have gone away, and now we have Phonon in KDE4, and ALSA and PulseAudio everywhere. Phonon is a multimedia framework that manages whatever audio subsystems and devices you like to use and (mostly) does not get in the way. ALSA provides sound card drivers and basic mixing, recording, playback, and testing. PulseAudio is an audio router that is manages multiple audio interfaces and streams, and it works pretty well though sometimes I still feel like kicking it in the shins. JACK patchbay

JACK is a professional low-latency sound server and audio router. I like turning off PulseAudio and using JACK + ALSA for high-end multi-track recording. JACK connects multiple software streams, which is very cool for combining software synths in a single recording, but it only operates through a single hardware audio interface; you can't combine multiple sound cards. But PulseAudio can combine multiple hardware audio devices.

Applications must be JACK-aware, while Pulse can capture anything. So why not just use PulseAudio? Because of higher latency, and you don't get the controls that JACK has for quality levels, streaming control, and routing. Pulse is more of a client-side program, while JACK is designed for recording. There are ways to use them together, at the cost of latency and CPU cycles.

It's rather a headache, and 'twould be lovely if some brainiacs could bring streamlined harmony to Linux audio.

3D Video

Maybe now that Nvidia is a Linux Foundation member we'll see some movement towards high-quality open graphics drivers. I tried to like ATI when they promised good Linux support and open drivers, really I did, because even though the binary Nvidia drivers work well on Linux, they're a dreadful pain to install. Sometimes Jockey works, sometimes it fails. Sometimes the Nvidia installer works, sometimes it fails. But between performance hassles and the pain of figuring out which ones to buy for Linux machines, ATI wasn't worth it. The Nouveau driver (open driver for Nvidia cards) is great for 2D, but 3D acceleration is still not there.

Once upon a time there were multiple graphics card brands to choose from: S3, 3Dfx, Diamond, and many more I've forgotten. Now it's an Nvidia and ATI duopoly. It would be ever so wonderful to see some real competition again, and good open Linux drivers for painless package manager installation.

Surely Linux Gurus Have Families?

Those are the big three on my wish list, because they are fundamental. A category that doesn't get enough attention is useful home software, such as:

  • Nice creative software like Broderbund's Print Shop. Print Shop is great for casual users who like to make their own greeting cards, invitations, calendars, newletters, and signs.
  • Sewing machine software for creating embroidery patterns.
  • Home and landscape designer.
  • Family tree maker.
  • More kid stuff; GCompris and Tux4Kids are wonderful, and parents and kids want more. The proprietary kid's software world is infested with branded marketing junk; we can do better.

Doubtless other categories of Linux applications are missing, though not nearly as many as just a few years ago. The other big task to look at is adding polish and completeness to existing applications and distros. That last mile is the hardest part, and it's important for attracting and keeping users. It isn't some perfect magic desktop environment that's going to attract "the masses" to Linux, but high-quality attractive applications.