An old debate has recently been rearing its ugly head: the value of standards in IT and the role of open source. In my view, it is really very simple. There are two types of standards, and they determine the role that open source can play.
- There is a type of standard (type 1) where vendors truly want to collaborate (let’s call it an “honest standard”), and then
- there is a type of standard (type 2) where vendors do not want to collaborate and create a standard only to satisfy politicians and/or the public.
Examples of type 2 standards are the file formats for Microsoft Office. In theory, you can have different applications using the same file format, in (any serious) practice you cannot. That’s because it is not of interest to Microsoft to fully standardize file format in a market that it almost completely monopolizes. A standard is a specification and any specification has loopholes. The question is whether the loopholes are there by design (type 2 standard) or by mistake that will get fixed (type 1 standard).
Type 1 standards are standards like the TCP/IP protocol or the C programming language specification where vendors truly want to collaborate, because having that standard makes everyone better off. The economic value is that vendors can develop improved versions of components implementing the standard and other vendors can innovate on top of these components faster and more freely than would be possible without the standard. This is where open source comes in.
A type 1 standard will still have omissions, like any standard, so you’ll need an arbiter on questions that arise. That arbiter can be a mailing list of experts, but better yet, it can be an open source reference implementation of the standard. Open source doesn’t have to kill any competing proprietary component; it can simply be maintained as an easy first solution while vendors can still build and sell variants with higher quality.
So, in conclusion, be wary of any standard that does not come with an open source reference implementation; it might not be an honest standard.