Programming Windows: Overpromise, Underdeliver (Premium)

Despite its massive successes in the 1990s, Microsoft was always considered a third-rate technology company by its jealous rivals. This was galling to Bill Gates and his employees, given the company’s history and its creation of the most successful software ecosystem in the industry.

But Microsoft’s critics had a point. After all, Microsoft’s developer tools were mostly terrible. BASIC was a toy language and, yes, Visual Basic was innovative and fun, but professional developers quickly ran into its limits and, after all, Microsoft had acquired it from a third party anyway. The Win32 Windows API was notoriously terrible and hard to use, and Microsoft’s conversion to the 32-bit world was a missed opportunity for cleaning up that API. Microsoft’s first attempt at an object-oriented wrapper over Win32, the C++-based Microsoft Foundation Classes (MFC), was an industry joke thanks to its bloated, hard-to-read code. Rival firms like Borland created better and more sophisticated developer tools. And Sun Microsystems—Sun, of all companies—had created an elegant and modern developer environment called Java that Microsoft had been forced to license to gain some traction in the emerging online world it was so worried about at the end of the 20th century.

In many ways, the Windows of the 1990s paralleled the iPhone of the 2010s, where the product succeeded at dominating the competition despite the terrible tools and languages that developers were forced to master to create compatible apps. But Gates always wanted to change that dynamic, both in appearance and reality. And you can see the ongoing campaign for developer legitimacy in such things as Windows NT, COM/DCOM/COM+, and then the Windows Foundation Classes (WFC), Microsoft’s first truly elegant and clean framework for developers.

That Gates had to look outside of Microsoft to make WFC happen is, perhaps, not surprising. But his poaching of Borland’s resident genius Anders Hejlsberg would pay heady dividends even after Sun sued Microsoft for violating its licensing terms with Java, effectively killing WFC. Thanks to Sun’s shortsightedness, Hejlsberg and others went on to create the .NET platform for Microsoft, including the .NET Framework and the C# programming language. And with that, Gates finally had the sophisticated and elegant developer environment that Microsoft had always lacked.

The problem, of course, was that Gates was still Gates. And in his excitement over this new technically sophisticated Microsoft, it is clear today that Gates and his company overreached when they communicated what they could deliver in .NET and the many internal products and services this technology would influence. This wasn’t entirely uncommon—Microsoft had overpromised and underdelivered many times in the past—but it would prove to be particularly problematic in the .NET era as the hype got ahead of reality repeatedly.

Microsoft’s initial introduction of .NET was confusing. It was a new platform that would deliver on a vision called software as a service. It would span Windows, the web, and a coming wave of “full-screen and small-screen devices.” It would be based on standards like XML and SOAP, which sounded concrete enough, and would include rich code on clients, web services, and new servers. There would be a new user interface that would bypass the limitations of HTML and provide “natural interfaces” like touch and smartpens on tablets, speech recognition, natural language processing, and handwriting recognition. There would be an “information agent” that would work on users’ behalf and use a “type in-line” feature on Windows, smart tags, and building block services like Passport. It was a lot of stuff, and the initial introduction was accompanied by science-fiction-like videos that really haven’t aged well. Heck, they looked ridiculous in 2000 too.

The subsequent introduction of .NET to developers went better. But .NET wasn’t an open platform, it was the next proprietary Microsoft platform, and the underlying goal was clearly about extending the software giant’s lead in PCs to include the web—and the Windows servers that would power it—and to new classes of mobile devices that would also run Windows derivatives. Given the company’s antitrust issues at the time—the primary concern being that Microsoft was leveraging its dominance to gain unfair advantage in new markets—.NET came off as more than a bit tone-deaf to outsiders.

More to the point, anyone trying to match the reality of what Microsoft would deliver over the next year and beyond with the promises of the previous month would have been disappointed. The .NET vision was sweeping and aggressive. But the bits Microsoft would deliver initially only went part of the way towards delivering on that vision. For Microsoft’s detractors, it was yet another example of the company stifling innovation while it plodded along trying to make it all real.

Even inside of Microsoft, there were doubts about this “bet the company” movement to rally around .NET. Using the .NET brand for future versions of Windows Server made some sense—and that part of the company continued to use the term .NET Enterprise Servers through at least 2002—but it made less sense for the Windows client, given its dominance and public mindshare. Microsoft had promised that future versions of Windows would be rebranded to Windows.NET, and specifically said that the next-generation Windows, due in 2001, would be called Windows.NET. But when the firm announced the first beta of this product, codenamed Whistler, the term “.NET” didn’t appear even once in the press release, and the .NET user experience was nowhere to be found. There were no .NET features for developers in that initial release either.

Microsoft Office followed a similar path. At the .NET announcement, Microsoft said that the next version of the product would be named Office.NET and would deliver a new natural user interface and services that would extend to work “any time, any place, and on any device, along with personalization capabilities to enable a new level of freedom and control.” But when Microsoft announced the next Office that August, it only mentioned .NET once, noting that the next version would be “the first Office suite to begin delivering on the Office.NET vision by integrating Internet-based services, enabling users to be more productive using Office with the web.” By November, it was simply being called Office 10.

Internal clashes over .NET sometimes went public. In August 2000, just one month after PDC 2000, Microsoft CEO Steve Ballmer announced a major structural reorganization to ensure the .NET-ification of the company stayed on track.

“We have assembled a formidable team of leaders that, with our existing software assets and our commitment to investing significantly in R & D, strongly positions Microsoft to create valuable services for the PC and a whole new set of connected devices,” he said.

Left unsaid, however, was that one of the highest-profile Microsoft executives in charge of .NET, Paul Maritz, had been bypassed in favor of Bob Muglia, who assumed a new role as group vice president of the .NET Services Group in the reorg. Just one month later, Mr. Maritz, a 14-year Microsoft veteran, unceremoniously left the software giant in what was described, officially, as his retirement. That he is still, in fact, working today—among other things, he was the CEO of VMWare for four years—is a testament to that lie.

Regardless, .NET limped forward as 2000 wound to a close. In November, Bill Gates delivered a keynote address at COMDEX in Las Vegas where he showed off a prototype Tablet PC that was “only an inch thick” and combined “the power of the PC with the convenience and simplicity of pen and paper.” He previewed the next version of Office—not described as Office.NET—and demonstrated how smart tags could be used to offer web services integration with the venerable suite. He also announced the Beta 1 releases of Visual Studio.NET and the .NET Framework.

“Just as Visual Basic 1.0 made developing applications easier and more accessible to a broad set of developers, I am confident that Visual Studio.NET and the .NET Framework will have a similar effect on the development of Web Services,” Mr. Gates said. “Our goal is to provide developers with the ultimate development tools and a multilanguage framework for rapidly building web services. By adapting its industry-leading tools to support the .NET Framework, Microsoft is enabling millions of developers to leverage their existing skills to create next-generation web Services in the language of their choice.”

Random aside: I met Microsoft CEO Steve Ballmer at COMDEX 2000. He was just walking around the show floor, unaccompanied.

Responding to critics about the proprietary nature of .NET, Microsoft also announced that it would submit the C# programming language specification and .NET Common Language Infrastructure (CLI)—a subset of the .NET Framework that is somewhat analogous to the Java Virtual Machine, or JVM—to ECMA for international standardization. To be clear, this wouldn’t make these technologies open source, let alone “shared source,” a system Microsoft would adopt in the next year. Instead, Microsoft would retain its ownership and all the patents and copyrights associated with C# and the CLI. Standardization would allow outsiders to petition ECMA for changes and improvements to be included in future versions of the standards, which could be licensed to others.

Standardization would also help Microsoft achieve its ulterior motives with .NET, which it hoped would expand the domination of Windows to include web services and the Windows-based servers that would deliver them. Standardization could legitimatize .NET, as it might be adopted in a limited fashion for use on some minority of outside platforms, including Unix, FreeBSD, Linux, and perhaps even the Mac, furthering its reach. It would also position .NET more firmly against Sun, which had previously withdrawn its bid for ECMA to standardize Java so that it could retain control of the technology.

Microsoft would move past this baby step in the near future with its shared source scheme, but it would be several years before the software giant would see the light and push to make .NET truly open-sourced. But we have a long way to go before we’ll get to that. And more examples of over-promising and under-delivering to get to as well.

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott