The Open Source Commandments


While I would hardly classify myself as a monotheistic deity on the level of the God of Abraham or even worthy of making statements of such cultural magnitude upon high, I would like to take this opportunity, perhaps, as we approach the Passover season, to make some suggestions for Commandments that future generations of technologists and technology companies wishing to pursue Open Source community activities might want to follow.

“Thou Shalt Not Be An Aggressive Monopolist”

Microsoft certainly got the smiting it deserved from the European Union, to the tune of over 2.6 billion dollars in accumulated fines over the last 3 years. Single vendor leadership position and domination of key markets in any industry are very frequently unavoidable, by virtue of a company’s expertise and duration they’ve been in business, as well as external economic factors which cause industry consolidation — such as AT&T with the telecommunications industry (a case of where a monopoly was broken and re-integrated itself through the act of industry consolidation due to economic forces 20 years later) and IBM establishing itself as the dominant provider of mainframe computers despite the existence of several competitors, such as Univac/Sperry/Burroughs, who eventually merged and found the government contracting business more profitable than selling hardware — and became the service-oriented Unisys in 1986 (although they still maintain their ClearPath business for customers who still need it).

Nevertheless, strong-arm and lock-in tactics such as those used by Microsoft are most certainly one of the least effective ways of preserving your business model long term, as their continually eroding server computing market at the expense of Linux and other open systems has now shown. Continuing to show industry leadership is one thing, but do not attempt to squash the little guy or other players in the process, because then the community will just plain hate you. If your product is good, it will stand on its own merits, although a hundred million dollars per year worth of marketing never hurts.

“Thou Shalt Not Keep Thy Protocols and Systems Closed”

It took the fourth plague of EU fines in February of 2008 to make Microsoft see the error of its ways and to force it to cooperate with projects such as SAMBA and open its networking protocols so that Linux and other UNIX-like OSes could have perfect compatibility with Microsoft’s CIFS/SMB implementation and directory services. Much like good old Pharaoh, they finally said Uncle, and gave up the specs before the inevitable slaying of the first born, which would have been the next logical step.

However, I have to give Microsoft credit with OOXML. Although the system has been criticized for its inelegance, complexity and incompleteness, the company has been accused of strong-arming various countries into ratifying the specification into an ISO standard and there has been ongoing concerns with parts of the technology being patented, Microsoft has delivered significant amount of tools and documentation for reading and writing OOXML files. So elegant or not, they’ve produced the goods, it is a standard, and now we have the job of actually implementing it in our Open Source software. To the whiners who continue to kvetch about ODF being better, et cetera, I say, get over it already.

Microsoft is hardly the sole practitioner of closed protocols and APIs, although they get the lion’s share of scorn in this area. The Insanely Cool Apple has a completely closed interface to the iPod, making 3rd party syncing software for non-Apple platforms a bit more than just a clever exercise in reverse engineering. Try to hook a non-Apple device into iTunes? Fuhgedaboudit. And as much as Google can play cool about being Open Source with Android, one only has to peek under the hood of the SDK to see it uses a completely proprietary, closed source JVM that sits on top of the Linux stack to provide the application environment. The Pharaoh wears no clothes!

“Thou Shalt not Proliferate Useless Licenses”

Microsoft has its own useless Shared Source license, but they are hardly the worst offender in this area because they have the least amount of Open Source software currently in the wild. Given the fact there are now over 50 OSI-compliant licenses, it makes no sense at all to complicate the ecosystem any further, particularly if it is incompatible with the major licenses in use – (L)GPL(2)(3), Mozilla, Apache, Xorg, BSD, et cetera. If anything, we should aspire to eliminate vanity Open Source licenses. While Sun has recently started to join the clue train by making Java GPL2, it deserves ten plagues of frogs and wild beasts because of the utter GPL-incompatible train wreck that is the CDDL that Solaris is currently licensed under. This is perceived as particularly obnoxious by the Open Source community because OpenSolaris incorporates many GPL-compatible projects into its distribution, such as GNOME and Xorg, but it is impossible for projects such as Linux to incorporate Solaris CDDL code. All take and no give Open Source licenses suck. So sayeth the Almighty.

Thou Shalt not Threaten Open Source Software Vendors, Projects and End-Users”

While this could be incorporated into the first commandment, as most of the saber recent rattling in this area has been attributable to Microsoft, they are not the only company to have done this – SCO has actually been a much more flagrant violator of this commandment than Microsoft has ever been, by sending extortion letters and filing lawsuits to end users of Linux distributions for violating their supposed (and now fully dismissed claims of) intellectual property rights. If you want to make nice with the Open Source community — or any large group of potential customers for that matter, threats and litigiousness is never a particularly good idea. You might end up with pestilence, darkness, fire and brimstone — or in SCO’s case — bankruptcy and complete insolvency.