[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

Microsoft, the Innovator?

David A. Wheeler

2001-03-26, revised 2012-06-23

Introduction

Jim Allchin, Microsoft’s “Windows operating-system chief,” has been trying to convince the U.S. government that open source software (or at least the General Public License) is a threat to the U.S. and to intellectual activity; one of his arguments is that open source software is a threat to innovation. In its recent court battles, Microsoft also used innovation as justification for its business practices (which have since been determined to be illegal).

However, after examining the evidence, I’ve determined that Microsoft is not a substantial innovator, so its claims that it should avoid punishment “because it’s an innovator” are without merit. Its products are popular, but as determined in a court of law, that’s at least in part due to illegal business practices that restrain customers from obtaining or using competing products (which, without customers, then collapse) [*]. That doesn’t make Microsoft innovative, at least not in technology. There’s nothing wrong with a company that isn’t innovative! But there must be excellent evidence of innovation to even consider eliminating punishment for illegal activity or to consider new legal constraints on competitors.

Here, I’ll provide evidence that (1) none of the key software innovations have been produced by Microsoft, (2) all of the important Microsoft products are essentially copies of previous products, and (3) Microsoft’s underlying technologies are not innovative either. Microsoft is simply not an innovator, and must not be allowed to use “innovation” as a defense, or to convince others that open source software / free software (OSS/FS) is a threat to innovation when there’s no evidence to support the claim.

But first, we must define “innovation.” An “innovation” is not simply combining multiple functions into a single product - that’s “integration” and usually doesn’t require any innovation (just hard work). In particular, integrating functions into a single product to prevent customers from using a competitor’s product (a documented Microsoft practice) is “predation”, not “innovation.” An “innovation” is not a product, either, although a product may embody or contain innovations. Re-implementing a product so that it does the same thing on a different computer isn’t an innovation, either. An innovation is a new idea. And in this context, what’s meant is a new idea in software technology.

Microsoft Has Never Developed a Key Software Innovation

Let’s try to identify the “most important (key) technical innovations in software”, and see which ones Microsoft created. Years ago I became interested in what were the most important software innovations, so I created a list based on lists of various computer-related events. I used many sources so I wouldn’t miss anything important, for example, I used IEEE Computer’s historical information, the Virtual Museum of Computing, and Hobbes’ Internet Timeline. I’m not aware of any formal consensus list of important software innovations, so this is the most definitive list I’m aware of. Clearly, Microsoft can’t have innovated anything before its formation in 1975, but I’ve tried to create a complete list of key software technology innovations -- that way, it’s much easier to see what a key software technology innovation really is (compared to simply another me-too product). It also clearly shows that innovations some people think of as Microsoft’s actually predate the company.

Open source software / free software (OSS/FS) has a better track record at producing key software innovations than Microsoft, who has never made one.
My results (a list of key software innovations) are listed at http://dwheeler.com/innovation. The list is intriguing, including graphical user interfaces, word processors, and many other things that we take for granted today. None of the key software innovations were created by Microsoft. Simply put, there’s no evidence that Microsoft has ever created any of the most important software innovations.

Some modest amount of innovation is necessary to build products, but this level of innovation occurs in every programmer developing any product (regardless of whether they’re building proprietary or OSS/FS products). Conversely, several of these key innovations (such as TCP/IP and the world wide web) were originally implemented and distributed as open source software / free software (OSS/FS). If you want real innovation, OSS/FS has a better track record at producing important software innovations than Microsoft.

Microsoft’s Products are not Innovative

I selected what I perceive to be Microsoft’s key products, and I found that none of them are fundamentally innovative either; they’re simply re-implementations of existing products:

All major Microsoft products are essentially re-implementations of previous products; none are fundamentally innovative.

  1. BASIC: This was the original Microsoft product, a simple programming language. Microsoft’s BASIC was released in 1975, but BASIC itself had been invented back in 1964, and it was only one of many programming languages available even then.
  2. MS-DOS: In 1981, Microsoft published MS-DOS. MS-DOS was Microsoft’s new name for QDOS, the “Quick and Dirty Operating System” written by Tim Paterson of Seattle Computer Products in 6 weeks not long before. Paterson developed QDOS by buying a CP/M manual and using the manual as the basis for his own program, so QDOS itself wasn’t innovative. When IBM approached Microsoft looking for software for its to-be-announced PC, Microsoft quickly bought QDOS and renamed it so it could make a deal with IBM. Of course, the notion of an operating system was old even by 1981, so MS-DOS was in no way innovative either. Later on, Microsoft did add features such as directories to MS-DOS, but these were intentionally copied from another operating system (Unix).
  3. Windows: In 1983 Microsoft announced that it would be developing Windows. Windows 1.0 was finally delivered November 1985 (two years late), but it performed poorly and had little in the way of applications. It wasn’t until May 22, 1990, when Windows 3.0 was released, that the system gained widespread third-party support. Windows was clearly inspired by Apple’s Macintosh (which, in turn, had been inspired by Xerox PARC, which had been inspired by the original 1968 inventions of Doulas Engelbart for a GUI with a mouse). Since Windows was essentially a copy of the Macintosh, which was based on earlier work, Windows cannot be considered fundamentally innovative.
  4. Windows NT/2000: Microsoft’s Windows NT finally provided (limited) multi-user capability and protected memory in a server operating system, but it did this by liberally borrowing ideas from the pre-existing VAX VMS and Unix systems (which were not the first such operating systems either).
  5. Word: This is simply another word processor, which Microsoft began in 1983. Lexitron and Linolex developed the first screen-oriented word processing system before Microsoft existed (in 1972), and WordStar preceded Microsoft’s efforts as well (1979).
  6. Excel: A spreadsheet, implemented long after the original VisiCalc (1978) and Lotus 1-2-3.
  7. Access: Yet another database system. Since it’s relational, the primary innovation it embodies are Codd’s models, which were developed in 1970 (before Microsoft even existed).
  8. Internet Explorer (IE): Internet Explorer wasn’t originally developed by Microsoft; it is an extension of the older NCSA Mosaic web browser. On at least Internet Explorer 5.5, selecting “Help About” shows that it is “Based on NCSA Mosaic. NCSA Mosaic(TM) was developed at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign. Distributed under a licensing agreement with Spyglass, Inc.” Again, web browsers (and IE) are not a Microsoft innovation.
  9. Active Directory: Active Directory is basically a re-implementation of the Lightweight Directory Access Protocol (LDAP), with Microsoft’s proprietary variant of MIT’s Kerberos often being used for identity authentication. LDAP is in turn a subset of X.500’s Directory Access Protocol (DAP). That goes back to the late 1980s, long before “Active Directory” existed. Again, no serious innovation here.

There are certainly other products by Microsoft; I can’t possibly list “all” products in this short space. But surely, if Microsoft had created a major new innovation in product types, it would be one of these top products. Instead, we find that the major Microsoft products are essentially re-implementations of previous products. There’s nothing wrong with trying to re-implement the same kind of product slightly better or cheaper than someone else; users are glad to see this kind of competition! However, that’s not innovation.

Microsoft’s Technologies are not Innovative

Even if an entire product isn’t innovative in the whole, perhaps it includes some extraordinary innovations inside it. Indeed, anyone building a product has some kind of “innovation” if the bar is set low enough - developers must think through every feature carefully and are bound to include some of their own ideas in the work. But this is a meaningless counter; since others will think issues through before building them, they will do that kind of innovation too.

Microsoft’s key underlying technologies aren’t innovative either.

So let’s look at a few technologies from Microsoft, and see if there are some innovations that are significantly better than those of other companies or of OSS/FS:

  1. COM/DCOM: These are the fundamental communication mechanisms in Windows, enabling programs to find and call each other and supporting “component programming.” However, these are just another remote procedure call (RPC) implementation, certainly not the first one, and COM originally couldn’t even work over a network!
  2. SMB/CIFS: Microsoft shares files and printers using the SMB protocol... but they didn’t invent it. For more information, see Just what is SMB?
  3. Direct3D: Direct3D is an application programmer interface (API) that lets people develop applications with 3D graphics to take advantage of hardware acceleration. But OpenGL was already a standard, and it wasn't the first 3D API either (other specifications such as PHIGS predated both). Instead, Direct3D was started after Microsoft bought RenderMorphics in 1995. It appears that Microsoft's motives were to try to create its own incompatible specification, to lock people into their product, instead of letting OpenGL be a standard used by everyone. Microsoft may also have wanted to justify the purchase of RenderMorphics. It certainly wasn't because Direct3D was better than OpenGL of the time; John Carmack's .plan 12/23/96 explains how inferior Direct3D was when it came out. Today, OpenGL and its derivative OpenGL ES 2.0 (adapted for Javascript!) runs on almost every embedded device these days; from iPhones, iPads, Androids phones, Set Top Boxes, and even TVs now.
  4. .NET: It’s often difficult to even get people to agree on exactly what .NET is, making it more difficult to analyze. The best description I’ve found is Sean Wilson’s “.NET - So What?”. He says .NET is a “branding formative”, that is, a single name applied to a large number of different initiatives by Microsoft, and that it has several areas: development tools, servers, clients, XML web services, and .NET “experiences.” Applications are to execute within the “.NET framework”, which is essentially an infrastructure very much like Java (supporting downloading of portable code using an intermediate format). The .NET framework is intentionally designed to support multiple computer languages; while this wasn’t a goal of Java, Java’s infrastructure also supports multiple languages, and older technologies (such as UCSD p-code and ANDF) were specifically designed to do this (in the same way) many years ago. Early in his article he says “.NET isn’t even particularly innovative... Many of the concepts have been previously realised and are well-understood.”
  5. Spreadsheet pivot tables: In 1986, Pito Salas came up with the idea of pivot tables in spreadsheets while working in Lotus Development Corporation's Advanced Technology Group. It was demonstrated in 1987, and the program that implemented it (now named Lotus Improv) was released on the NeXT in 1988. Lotus Improv was released on Windows in 1993. Excel didn't add pivot tables until its Excel 97 release. (Source: "Pivot Table Data Crunching" by Bill Jelen and Michael Alexander).

Some may note that Microsoft does hold some patents. Unfortunately, software patents don’t demonstrate innovation, just that the submitter has enough money to submit many patent applications. The database of existing work in software used by patent examiners is inadequate, software patent examiners are generally paid less than those in the field (reducing the number of qualified examiners), patent examiners have very little time to review each patent application, and patent examiners have incentives to simply accept applications (with minor changes) as opposed to denying invalid requests. As a result, software patents on pre-existing or obvious ideas are often granted. Indeed, a 2007 U.S. Supreme Court ruling struck down the PTO's internal rules on "obviousness", because many patents have been granted on ideas that are obvious to practitioners; as a result, many such patents are probably unenforceable. Even if you accepted the unlikely notion that software patents represented innovation, if you want to compare the number of ideas with OSS/FS developers, it’s clear that many OSS/FS leaders actively discourage applying for patents; this suggests that counting patents from the OSS/FS community would still not be a fair comparison of the number of ideas. Many countries do not allow software patents, and although the U.S. now does, there are a number of organizations who oppose them. For more information on the problems with software patents, see organizations such as the League for Programming Freedom.

Conclusion

I’ve shown that (1) none of the key software innovations have been produced by Microsoft, (2) Microsoft’s key products are essentially copies of previous products, and that (3) Microsoft’s key technologies aren’t innovative either. Microsoft has always “chased the tail lights” of real innovators. Perhaps Microsoft has been creative in very small ways, but there’s absolutely no evidence that they’re more or even as creative as any other group of developers, OSS/FS or proprietary. Others have come to the same conclusion; see websites such as the Microsoft “Hall of Innovation”, which carefully analyzed various Microsoft products and has yet (as of August 2005) to find clear evidence of even one innovation.

There’s nothing wrong with a company that isn’t innovative. After all, the purpose of Microsoft (or any other company) is to make money for its shareholders, not to create innovations for their own sake. But claiming that you’re innovative, when you aren’t, is disingenuous. Justifying illegal actions in the name of innovation, when that innovation has never occurred, is doubly disingenuous. And, if this is a key support for their argument that the government shouldn’t encourage OSS/FS, analysis quickly causes those arguments to evaporate too.

Only Microsoft seems to think that OSS/FS is a fundamental problem for the computing industry. Several key innovations came from the OSS/FS community, including essentially the entire Internet, so clearly OSS/FS encourages innovation, not the other way around. In a wider view, OSS/FS is being widely embraced, and there are many quantitative benefits. For example, many major computing companies (such as IBM, HP, and Sun) are adopting, distributing, and supporting OSS/FS projects. Even other companies that sell proprietary software, such as Oracle, are finding ways to work with OSS/FS projects.

In this context, Allchin’s statement “I worry if the government encourages open source [software], and I don’t think we’ve done enough education of policymakers to understand the threat,” has a chilling undertone.

It instead appears that Microsoft simply doesn’t want to change its business model to reflect the changing computing environment and its customer’s desires. That’s too bad; nothing prevents Microsoft from changing its approach. Yet monopolies before it have made the same mistake. I’m not anti-Microsoft, and I’m not against proprietary software. Indeed, I’m happy to praise Microsoft or any other company when it does good things. However, it disturbs me when any organization makes such baldly untrue claims. It’s wrong for Microsoft to excuse its illegal conduct, wrong to claim it does not need to obey the law by claiming significant innovation, and it is triply wrong once you realize that it has not even innovated the way it claims it has.