An important lesson learned in the past is that, at least in the information technology field, imposed standards can have a really hard time in creating a real user base. In this respect, the availability of an open source reference implementation can be instrumental in the diffusion of protocol usage. Popular examples of this fact are many of the protocols and much of the infrastructure that have been instrumental in the deployment of the Internet. The TCP/IP suite was popularized by the open source protocol stack created in Berkeley by the CSRG group (the networking stack in BSD Unix). Sendmail, which still remains the reference implementation for SMTP, ESMTP and advanced email functionality is another example. BIND, also developed at Berkeley, is still the most widely used software implementing the DNS protocol, and the availability of open source versions of X-Windows has been very important in the adoption by many vendors of X11 as a standard protocol for graphical user interfaces.
The importance of an open source reference implementation is twofold:
The reference implementation can also help in the case of `aggressive split' of a protocol. For instance, if a vendor decides to create a slightly incompatible version of the same protocol to gain some advantage against its competitors, the existence of the reference implementation is always a fixing point which can help to avoid that split, if all the other vendors stick with it, which will be usually the case.
Just as it was important in the past to have control over the operating system and the standards of the formats for data interchange, in the future it will be very important to have open data interfaces in networks for electronic commerce and content interchange between different services in the Internet. This is the case, for instance, whenever one server automatically obtains some information from another server. These application protocols should stay open, with open source reference implementations, which any company or individual can use or adapt to suit their needs. Otherwise, anyone wishing to use those services will need to purchase some proprietary software from the company which sets the standard. As these services are more and more part of the basic infrastructure needed by any individual for their everyday life and by any company for its normal functioning, it becomes more and more critical that their normal activities should not be controlled by any given software provider.