The Low Point--a view from the Valley: The innovation game

Innovation these days is being used as a code word for large, corporate controlled research and development, regardless of any results it might produce.

The opinions expressed here are mine alone, and not those of Google, Inc. my employer.]

Commentary--Innovation is a weasel word. It used to earn an honest living, but now it's been hijacked by marketing people for dishonest purposes. It's now in the same category as "rich". Does anyone now hear the words "rich user experience" or "rich client" without thinking of a bloated, Windows-only client that doesn't use open or standard protocols? Controlling the language like this is power. Whoever defines the words we use can control the way we think about things. Our knowledge of language limits how we can express our thoughts. Innovation these days is being used as a code word for large, corporate controlled research and development, regardless of any results it might produce.

People often criticize free software/open source for lack of innovation. This is usually expressed as a complaint that free software only copies existing proprietary software, and doesn't invent anything new. The historical reasons for this can be understood when you look at the origins of free software. When Richard Stallman created the Free Software Foundation and began the free software crusade, he was starting from scratch. Nothing existed, not even a compiler to create other free software programs. So one of his first tasks was to create such a compiler, which has become the modern gcc (GNU Compiler Collection).

The first ten years or so of free software by necessity was re-creation of much proprietary software, such as the shells and command line tools needed for a complete UNIX environment. All of this software was created on top of existing proprietary operating systems (usually Sun's SunOS or Solaris). The culmination of this was the creation of the operating system kernel itself, Linux (although FreeBSD would have done just as well, Linux became mature first). But even in this re-creation of UNIX, much work was done that could truly by called innovative.

The removal of arbitrary limits in all of the utilities rewritten for the GNU project lead to most UNIX system administrators replacing the vendor-shipped programs with the GNU versions as their first act after installing a new UNIX system. Some of this re-creation is still being done, especially in the desktop space. Creating graphical utilities to control every aspect of an operating system is a tedious job, but is necessary as proprietary software itself hasn't stood still over time and user expectations of what a system should contain have rightly risen.

But since this time, some astoundingly innovative free software has been written and been made available for everyone to use, for any purpose. I'm going to list just some of the ideas I know about, although it's been a long time since I was able to keep track of all the free software available out there.

Andrew Tridgell's rsync has revolutionized large scale data transfer. The algorithms used are subtle, and the subject of his PhD thesis (I still remember him trying to explain them to me as he was developing them, but I was too stupid to understand :-).

The git distributed source code control system is spreading like wildfire in the free software community, and I believe will ultimately change the way software engineers collaborate when developing software. This is Linus Torvalds’ second success at capturing lightning in a bottle (Linux itself being the first of course) and will cement his name as one of the greatest software engineers of our time.

Julian Seward's valgrind program has done more to create secure and bug-free software than any other tool software engineers’ use. The idea that modern processors are fast enough to emulate themselves in software and so allow software being debugged to run within a fully controlled environment was a stroke of genius. Valgrind helps engineers fix the impossible bugs that otherwise plague software development.

Let's not forget the Free Software Foundation itself, whose autoconf toolset taught a generation of programmers that testing for features, not specific platforms is the only way to build truly portable software. The autoconf tools are the reasons that free software can run on almost every computing platform in use today.

These are just a few examples I was able to remember whilst writing this column. There are so many others I'm not going to try and enumerate everything and would only offend people by leaving them out. But remember that these advances are available to everyone willing to abide by the license, and have been an incredible boon to civilization, which increasingly depends on complex software. Companies have been founded, fortunes have been made, and will continue to be made, on top of the innovation created by free software.

So who could possibly be against this wealth of the commons ? People wishing to own innovative ideas, that's who. Not just one specific implementation of an idea, but the very ideas themselves. I'm referring to software patents, which have recently been used in a very direct threat against free software development. Steve Ballmer of Microsoft recently made more direct threats against Linux and free software, warning Red Hat users specifically, "People who use Red Hat, at least with respect to our intellectual property, in a sense have an obligation to compensate us". Three days after making these threats a lawsuit was filed against the two most successful Linux distributors, Red Hat and Novell, by IP Innovation LLC, a known patent troll (a company who creates nothing and whose business model is to threaten others over patents). Mr. Ballmer's timing is, as always, impeccable.

Many companies own software patents, but Microsoft is the only software company that has so utterly rejected the free software ethos that every new piece of free software that others welcome and immediately attempt to commercialize is seen by them as a blow to their survival. Microsoft has painted themselves into a corner where they feel that for them to continue to be successful, free software must die. I don't mean cease to exist of course, that'd be impossible. But die in the sense that Microsoft would like to be paid for every commercial use of free software, thus destroying the very principle behind the movement, and destroying any innovation it creates. No one wants to be an unpaid employee. It's not enough for them to take this common wealth and make money on it the way all others do, they want to be able to bleed it dry without having to participate on the same terms as everyone else.

The danger posed by software patents to free software cannot be underestimated. I remember well these words of wisdom from one of the leading figures in the software industry.

"If people had understood how patents would be granted when most of today's ideas were invented and had taken out patents, the industry would be at a complete standstill today. ... The solution is patenting as much as we can. A future startup with no patents of its own will be forced to pay whatever price the giants choose to impose. That price might be high. Established companies have an interest in excluding future competitors," said Microsoft Chairman Bill Gates in 1991.

Software is human thought, human ideas. It's as pure as music or mathematics or physics. People who promote software patents want to own the very thoughts in your head. A world with widespread software patents, globally enforced, is best described in the very prophetic words of George Orwell in "1984" describing "Big Brother":

"If you want a vision of the future, imagine a boot stamping on a human face--forever."

No unauthorized innovation allowed in Oceania, all ideas must have an owner. For the good of "innovation", with its original meaning, free software must be free of software patents.

Jeremy Allison is one of the lead developers on the Samba Team, a group of programmers developing an open source Windows compatible file and print server product for UNIX systems. Developed over the Internet in a distributed manner similar to the Linux system, Samba is used by all Linux distributions as well as many thousands of corporations worldwide. Jeremy handles the co-ordination of Samba development efforts and acts as a corporate liaison to companies using the Samba code commercially. He works for Google, Inc. who fund him to work full-time on improving Samba and solving the problems of Windows and Linux interoperability.