Monday, April 12, 2010

IBM's attack on Hercules is an attack on interoperability and FOSS innovation

A small minority of commentators has suggested that the FOSS community should sacrifice Hercules to the Generous Gods of Armonk. With all that IBM has in their view done for FOSS -- mostly Linux -- over the years, those commentators believe we should turn a blind eye to what they are doing in this case. Let's not get into historical examples where this seemingly pragmatic approach failed miserably in foreign policy.

Matt Asay, an executive with Ubuntu company Canonical, says IBM's behavior "isn't cause for concern. It's cause for celebration." But once the same happens to Ubuntu, the one thing he surely won't do is celebrate. And a blog whose founder admitted that it began as an effort to assist IBM's legal department (and who has ever since been far more loyal to IBM than Rush Limbaugh to the Republican Party) even encourages IBM to sue Hercules aggressively.

Again, it's a small minority only. I remember the phenomenal support my NoSoftwarePatents campaign received from the FOSS community. I'm sure that's still the position of a FOSS majority. No one in his right mind wants patents to be used against FOSS.

It's also my impression -- I'm just describing, not setting norms -- that the ethical values of the FOSS community include the principle of solidarity.

Nevertheless, some may underestimate the broader implications of the Hercules case.

A huge market in terms of dollars, small in terms of people

Obviously Hercules doesn't have the massive number of installations (estimates are in the 5,000 to 10,000 range) some of the most popular FOSS projects have. Then there are only an estimated 10,000 to 12,000 mainframes in use today, but they power some of the most important applications of enterprises (banks, insurance companies etc.) and governments (social security etc.). Since there is so much money spent per user, the mainframe software market (approximately $25 billion) is twice as big as the GNU/Linux software market. But since there's a limited number of professionals using mainframes (and knowing how to use them), it follows that there won't be millions of people running a mainframe emulator on x86/x64 hardware.

IBM determined that mainframe dollars trump FOSS relationships

Apparently Hercules is indeed important enough that IBM has decided to attack it no matter what. In pursuit of this objective, IBM simply takes into account that the whole FOSS community can now see that IBM is just a business with an opportunistic approach to FOSS: IBM uses FOSS for its purposes but will also use anything (including patents) against it. IBM portrayed itself as friend who would always give, never take. As an exemplary citizen of the FOSS universe. When IBM's patent threat letter to TurboHercules was made public, that hypocrisy was exposed.

The problem is that every major software patent holder has business interests where there are conflicts with some FOSS projects. The economic argument -- "there's a lot at stake" -- must not be considered acceptable to justify patent warfare.

The FOSS way of innovation exposes all FOSS to patent attacks

By this I don't just mean the fact that the publication of source codes facilitates the identification of infringement. I mean something more important:

The kind of "innovation" that the patent system rewards and the FOSS way of innovation are fundamentally different.

A patent office grants a monopoly (for at least 20 years) to the first to file a patent on a software idea no one else has previously published or filed a patent application for. In jurisdictions with a grace period, there's the first-to-invent principle, but within the grace period the original inventor has to file.

FOSS projects usually aren't the first to invent a general software idea, let alone the first to file a patent application. Still, FOSS isn't a copycat. FOSS innovates in a different way, and that way is now being jeopardized by IBM with its patent aggression.

Innovation in software is not just a matter of being the first to have and register a general idea. Innovation in software very much consists in the cost-efficient, stable, bug-free, secure implementation of such general ideas -- even if one is not the first. FOSS is often a force of disruptive innovation, serving to commoditize (turning an exclusive, costly type of product into something widely available and affordable).

Why is IBM against Hercules? Because for a number of mainframe-related purposes, it has the potential for commoditization. Being able to take some applications down from a million-dollar mainframe to a $5,000 Intel-based server is a fantastic example of commoditization. This is FOSS at its best.

Why does IBM use patents against Hercules? Because that's where FOSS is strategically disadvantaged.

If you run a FOSS project, think about whose business you are commoditizing (now or in the future). Then take a look at the patents the affected company or group of companies owns. It's scary.

IBM fighting with patents against interoperability

The last point is very important: The Hercules case is an interoperability case.

The right for FOSS projects to interoperate with existing prioprietary/closed-source software is a fundamental issue. IBM itself has demanded that right in other contexts. Now it denies Hercules that right.

FOSS purists would want the whole world to give up proprietary software altogether. It just won't happen too soon. Especially in an old and slow market like the mainframe business, that can't happen overnight. Companies have invested trillions of dollars in mainframe infrastructure, a lot of which relates to in-house software development. We're talking about an estimated 200 billion (that's 200,000,000,000) lines of mainframe code in use today.

So Hercules wants to interoperate with existing mainframe software. For companies looking to switch to FOSS step by step (which is the only realistic approach for large corporations and governments), the first thing that's required is the right for Hercules to interoperate.

That interoperability begins with the emulation of the CPU instruction set (machine language) of the mainframe architecture (System z). Whether you run z/OS, z/Linux or any applications on top of any mainframe operating system, Hercules can only perform its emulation job by interfacing with other software through that mainframe CPU instruction set.

A CPU instruction set is simply an interface (or if you will, a protocol) for communication between the CPU (or, alternatively, an emulator such as Hercules) and the layer above.

It's no less of an interoperability case than word processor file formats, network file transfer protocols or anything else that FOSS needs all the time to serve its purpose in a real-world setting where proprietary software and FOSS are used in parallel.

Do you still want to be able to open Word and Excel documents with OpenOffice? Do you want to run a heterogeneous network of Windows and GNU/Linux machines and exchange data freely? If the answer is yes, then you should care about Hercules.

For interoperability's sake, and for many other reasons including the ones mentioned in this post, we must not view Hercules as an isolated case. We all have to understand -- and make others (including regulatory agencies) understand -- the far broader implications of IBM's conduct.

If you'd like to be updated on patent issues affecting free software and open source, please subscribe to my RSS feed (in the right-hand column) and/or follow me on Twitter @FOSSpatents.