Jump to content

Embrace, extend, and extinguish

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Bluemoose (talk | contribs) at 21:54, 5 January 2006 (AWB Assisted clean up). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Microsoft, like many other companies in their heyday, has publicly stated that it aims to "embrace and extend" popular standards and existing work. "Embrace, extend and extinguish" (EEE) is a scornful takeoff on this by Microsoft's critics, used to suggest that the stages of embracing and extending are only prefaces to extinguishing or supplanting existing work with Microsoft alternatives. The term is commonly used on websites such as Slashdot where anti-Microsoft thinking abounds. Critics of Microsoft say the company uses EEE to drive competitors out of business by forcing them to use nonstandard and often purportedly problematic technology that Microsoft controls.

Although the behavior is today attributed to Microsoft because of their dominant position in the computing world, it has been present all along in both computer and non-computer history.

(A similar takeoff with slightly more detail on the process is "Copy, corrupt, copyright, circulate, control".)

Microsoft, the Internet, and other standards

Microsoft's strategy toward the Internet and other standards has been described as being EEE by those who claim that the company exercises unfair anticompetitive practices.

The three stages of the EEE strategy consists of the following steps:

  1. Embrace: The company publicly announces that they are going to support a standard. They assign an employee or employees to work with the standards bodies, such as the W3C and the IETF.
  2. Extend: They do support the standard, at least partially, but start adding company-only extensions of the standard to their products. They argue that they are trying only to add value for their customers, who want them to provide these features.
  3. Extinguish: Through various means, such as driving use of their extended standard through their server products and developer tools, they increase use of the proprietary extensions to the point that competitors who do not follow the company version of the standard cannot compete. The company standard then becomes the only standard that matters in practical terms (a de facto standard), and it allows the company to control the industry by controlling the standard.

Evidence held up in support of the 'EEE' view of Microsoft's policies include the Halloween documents, a series of confidential, internal Microsoft memos related to dealing with Linux and open source software, which were leaked to the public. What exactly can be inferred from the documents about Microsoft's strategies is up to debate.

Examples of areas where "embrace, extend and extinguish" have been alleged:

The last example was the subject of a widely-publicized lawsuit between Microsoft and Sun Microsystems, which was settled.

The phrase "embrace, extend and extinguish" should be reserved for the particular strategy outlined above. Therefore, in the subject Java vs. .NET, EEE would not strictly apply either because .NET is marketed under the Microsoft brand name. However, a J# language is positioned in .NET as a way to lure Java programmers to the .NET Framework. Some observers suspect that Microsoft intends to use EEE with the C# programming language, by first getting many users for the ECMA-standard version of the language, which was intentionally designed as a successor to the popular C programming language, then later adding proprietary extensions and removing support for the standards-based version. However, at the present time Microsoft has not deviated therefore those suspicions may be unfounded.

Another example is the C++ programming language. First, Microsoft tried to extend it as Managed C++ in Visual C++.NET; however, this attempt was met with a lot of resistance as the managed extensions were poorly implemented and aesthetically unappealing. Because of the poor reception, Microsoft made a second attempt at extending C++, this time calling it C++/CLI. It remains to be seen whether these new extensions, which are scheduled to appear in Visual Studio 2005, will gain wide acceptance. The other issue with Microsoft's C++ implementation appears to be the removal of many originally strict errors and warnings that appear in other, more standards compliant compilers such as the open-source GCC compiler. The omission of these errors frequently causes strange portability problems and compiler failures when porting C++ code, even if it does not contain any Microsoft-specific code.

The purported effectiveness of EEE lies in network effect, the idea that the value of a product to a potential customer increases as the number of customers who already use that product increases. In the first edition of The Road Ahead, Bill Gates explains in detail his plans to use the network effect to Microsoft's advantage.

Self-limitation of EEE

If true, Microsoft's "embrace, extend, and extinguish" strategy seems to have had limited usefulness. It has affected HTML, mostly through the alterations to the Document Object Model in Internet Explorer. One flaw in this strategy is that incompatible enhancements generally create customer pushback, especially when those enhancements have limited usefulness.

See also