The Law of Standards

by John F. Sowa

In 1991, while I was participating in some standards projects, I sent an e-mail message to my colleagues, in which I formulated the following hypothesis:

Whenever a major organization develops a new system as an official standard for X, the primary result is the widespread adoption of some simpler system as a de facto standard for X.
In the original statement, which is reprinted below, I illustrated the hypothesis with four failed attempts to develop widely accepted standards:

  1. The PL/I project by IBM and SHARE resulted in Fortran and COBOL becoming the de facto standards for scientific and business computing.

  2. The Algol 68 project by IFIPS resulted in Pascal becoming the de facto standard for academic computing.

  3. The Ada project by the US DoD resulted in C becoming the de facto standard for system programming.

  4. The OS/2 project by IBM and Microsoft resulted in Windows becoming the de facto standard for desktop computing.
The failure of these attempts to establish new standards does not mean that all standardization efforts are doomed to failure. On the contrary, many successful standards have been established for computer systems as well as everything from screw threads to grain sizes for wheat. But the overwhelming majority of successful standards are clarifications and revisions of interfaces that have proved to be effective without the support of a major standards body. What has consistently failed are the "proactive" attempts to design new systems from scratch that are declared to be standard before anyone has had a chance to implement them, test them, use them, and live with them. Some new systems succeed, but most fail, and even the most successful go through several iterations before the best configuration is found. Such design iterations are best done in small research projects, not in large public committees.

A hypothesis that explains a fixed set of data may be the result of chance. It does not attain the status of a law until it has been confirmed by observations that were not included in the original data. Since 1991, the most notorious illustration of the law of standards was the failure of the seven-level standard for Open Systems Interconnection (OSI), which was being developed by ISO with major support from governments and businesses around the world. The primary result was the triumph of TCP/IP as the de facto standard for computer networks.

One more data point makes a hypothesis more credible, but the most convincing evidence is a successful prediction about the future. In 1995, when Bill Gates laid out his vision of "Windows everywhere," the law of standards convinced me that Linux would replace Windows as the de facto standard for operating systems. Following is some evidence in its favor:

Therefore, the law of standards predicts that the Linux API (Application Programming Interface) will replace the Windows API as the de facto standard for operating systems. That does not mean that Linux itself will immediately replace all other operating systems, but that all major operating systems will become compatible by supporting the same conventions and interfaces as Linux. Microsoft may continue to produce operating systems called Windows, but they already run applications originally written for Linux, and the old Windows API will be used only in legacy applications.

Original Statement

Following is a copy of the e-mail note to the committee on Shared Reusable Knowledge Bases (SRKB). The original can be found on an e-mail archive at Stanford University.

Date: Fri, 22 Mar 91 01:47:31 EST
Subject: The law of standards

As a participant in various kinds of standards efforts within IBM and
some outside of IBM, I have formulated a law of standards based on
observations of various efforts:


1. IBM and SHARE developed PL/I as a new universal programming language.

   Result:  COBOL became the standard for business programming, and
            FORTRAN became the standard for science & engineering.

   Note:  COBOL and FORTRAN were both introduced in the late 1950s, but
   the introduction of PL/I in the mid '60s coincided with a major
   increase in the use of both COBOL and FORTRAN.

2. IFIP developed ALGOL-68 as the standard for academic computing.

   Result:  Pascal became the standard for academic computing.

3. DARPA developed Ada as the standard for systems programming.

   Result:  C (a language that violated nearly every one of the design
            goals for Ada) became the standard for system programming.

4. IBM and Microsoft developed OS/2 as a standard operating system for
   IBM-PC compatible machines.

   Result:  Microsoft Windows became the standard.

Although the cause and effect relationships are not entirely clear,
these examples are not coincidences.  A major standards effort is not
started until a lot of people begin to feel the need for standards.
The proposal of a new standard and the effort to produce it heighten
awareness among the practitioners.  But the long delay before the
new standard becomes available leads people who have urgent problems
to look for something they can start using sooner.

Moral:  Standards efforts lead to standards, but not always the ones
that were intended.  So one way or another, I hope that something
useful may come out of this workshop.


Copyright ©2000, 2004 by John F. Sowa

  Last Modified: