Internet Standards and Operating Systems - Why Integration Makes Sense
By Joe Belfiore, Group Program Manager – Windows User Interface
In the relatively brief history of personal computers, computer users—both individuals and organizations—have benefited from a staggering rate of growth in new capabilities, and improvements in old capabilities. We've seen PCs evolve from slow, silent, unattractive, standalone machines that couldn't even store a single 10-page document into easy-to-use machines that can play movies, communicate around the world, and manage reams of data at speeds that exceed those of mainframe computers [twenty] years ago. This evolution in capabilities has arisen out of many individual innovations and the standardization of such innovations, which sets the stage for the next round of innovation to occur.
On This Page
A Beneficial Cycle: Innovations Become Standard Capabilities
Internet Standards – The Next Great Enabling Technology
Internet Technologies in Windows - Making it Easier for Software Vendors
Platform Services - Doesn't integration harm other peoples' businesses?
A Beneficial Cycle: Innovations Become Standard Capabilities
One of the primary roles of an operating system—perhaps its most important—is to provide a common platform of services for 3rd parties to create new applications, hardware devices, etc. Operating systems have always done this, and over time each operating system has made its platform of services broader and more capable. Windows is no exception.
In the beginning, Windows had a fairly limited set of services; Windows-based applications couldn't ask Windows to do very much for them—they couldn't ask the operating system to get files from any kind of network, they couldn't ask it to draw very many interesting things on the screen, they couldn't even ask it to play a sound. But, by continually adding new capabilities to Windows, Microsoft has made it easy for application vendors to create more capable applications with features that make them more appealing to consumers.
Often, new capabilities added to Windows started out as innovations created by other parties—and sometimes they have been developed within Microsoft. With a thriving and competitive software industry, anyone can create a new and useful element using the platform of services that comprises Windows, and including some of these in the operating system makes them available for everyone to share. The beneficial cycle, over time, moves the most generally useful capabilities into the operating system, enhancing the user experience and paving the way for further innovations that will make the whole experience of using PCs better.
Let's look at a couple of examplesU.
Six years ago a "toolbar" was an uncommon thing in an application window. The first application to ever create a toolbar—the row of buttons that make it easy to perform common operations like "open" and "save"—was Microsoft Excel. When Microsoft Excel created the first toolbar, the developers wrote all the computer-code for the toolbar on their own. This was a lot of work, but it turned out that users liked toolbars very much, so the effort was worth it for the Excel team. If any other application wanted to include a toolbar as well, they'd have to do all of that same work on their own.
Over time, lots of people at lots of companies spent a great deal of time writing toolbars. Across the industry, this was an inefficiency. Effort was duplicated from team to team, and even worse, when two different applications with two different toolbars were running on a given PC, two separate sets of computer code were executing simultaneously on the machine to generate those toolbars, making the PC run more slowly.
Eventually, toolbars became so common that it made sense for Windows itself to provide a single facility for generating toolbars that everyone could use. When Windows 95 shipped, that was one of many new services the operating system offered to any application developer. The result—more applications than ever now have toolbars, and all the toolbars work well and in a consistent manner across applications. Because all of those toolbars are generated by the same set of computer code, PCs run faster. And perhaps the greatest benefit is that hundreds of software development teams around the world are now able to spend their time on new innovations instead of implementing the computer-code for yet another toolbar.
Can you remember when you bought a PC and it had no sound capabilities? Well, that wasn't really very long ago. Basic PCs often didn't come with sound cards, and no standard software existed that application developers could rely on to produce sounds. Any application that wanted to use sounds had to create a team of people to go write all the computer code associated with understanding whether the PC had a sound card, figuring out what kind it was, and playing sounds on it.
This was a major task. Different sound cards had different capabilities, and it took a lot of work to get right all the computer code needed to handle each and every possible configuration of a user's PC. Developers of individual applications were even forced to make sure to provide things like volume controls, since nothing like that was standard in the PC environment.
Over time, sound cards gained popularity, and application vendors were repeatedly required to duplicate the work necessary to incorporate sound into their applications. At that point, it made sense to integrate sound support into the operating system (including both these application services and end-user features like a sound-player and CD-player).
Today, many Windows-based applications use sound, relying on Windows to handle the housekeeping chores inherent in providing sound for them. It's become quite routine, really. Think about all the games you use, the CD-ROM titles you play, even the web-browsing software you run has sound capabilities built-in. This has happened because application developers now longer have no write lots of computer code themselves in order to incorporate sound into their products. Instead, all they need to do is say "Windows—can you play this sound for me?" and the rest is taken care of. Once again, the knowledge that the platform of services that comprises Windows includes such capabilities frees software developers to spend their time improving unique aspects of their products.
Internet Standards – The Next Great Enabling Technology
You're undoubtedly reading this because you're interested in the debate surrounding Microsoft's integration of Internet technologies into Windows. Is this the right thing for Microsoft to do? Does it benefit or harm the PC industry? And what will the effect be on consumers who actually use PCs?
Emergence of Internet Standards
For quite a few years a group of people known as the "IETF" (Internet Engineering Task Force) has been developing a set of standard methods for people and computer applications to communicate with each other across the Internet and other similar networks. These folks aren't from any one company, they represent lots of different interests, and their goal has been to specify technologies and protocols that anyone can use.
Numerous products now take advantage of these Internet standards. Of course, that includes the web-browsing software, but there are lots of others products as well—email packages, things like the Pointcast screensaver and even custom applications that businesses use to communicate or conduct commerce. You might be surprised to learn that even Microsoft Office 97 relies on Internet standards to allow you to save Office documents to a certain type of Internet server.
In fact, the set of standards created and managed by the IETF and the Worldwide Web Consortium (W3C) is quite broad and covers more than just network-related stuff. It's worth understanding what some of these standards are about.
HTML – a universal file format. HTML ("Hypertext Markup Language") is an English-like language that people can use to describe the way text, images, videos and sounds should be displayed on a computer screen. When you visit a web page, the screen you're seeing was written in HTML. Once this standard file format was created, it's become possible to create documents or screen displays that can be viewed in any application or on any computer that supports the standard. HTML is a very powerful screen-description language, and it's becoming more widespread even in applications that have no necessary connection to the Internet.
HTTP/FTP (etc.) – universal ways of moving data or files across a network. HTTP ("Hypertext Transfer Protocol"), FTP ("File Transfer Protocol") and similar network protocols describe standard ways that anybody can get a file from this computer to that one across a network. These protocols are used on the Internet, but they are also used on corporate intranets and other types of networks.
URL – a universal address for files on the Internet. Anytime you see text in the format www.microsoft.com, you're looking at a URL ("Uniform Resource Locator"). This is simply a way to uniquely describe the location of a file that lives on the Internet, which is comprised of information stored on a large number of computers around the world. Without such unique addresses, it would be impossible to locate particular files on the Internet.
The goal of the IETF/W3C in creating these standards has been to enable and encourage universal exchange of information. Any application is allowed (even encouraged) to read and display HTML files. And as more applications do this, life becomes easier for both users and application developers—it becomes easier for people to exchange information. (If you're developing an application that creates HTML files, you know that lots of people will be able to read them, for example.)
An important thing to understand about the Internet standards committees, however, is that their job is to decide on the standards but not actually to write the computer code that implements the standards in software products. When the W3C creates the next version of the HTML standard, for example, they do it by writing a lengthy specification document, not by writing any actual computer code that draws HTML on the screen or that edits HTML documents. The task of writing the computer code is left to teams of software developers in individual companies or universities, etc.
The situation is a lot like the one that prevailed after the Microsoft Excel team designed the first toolbar—the W3C designs a great way for applications to universally exchange information, but each application vendor still needs to write the computer code to permit such information exchange to work in their application. Back between 1993 and 1996, lots and lots of companies were separately writing the same computer code to support all the standards created by the IETF/W3C—code to read and display HTML, code to get files from computers on the Internet, code to locate files using their URLs. This involved (and still does) a major duplication of effort, and a lot of work for individual application vendors.
Internet Technologies in Windows - Making it Easier for Software Vendors
From the very outset, Microsoft intended Windows 95 to support the broadest possible range of networks, including the Internet. That is why the development of Windows 95, code-named "Chicago", included work on a variety of Internet-related technologies, code-named "O'Hare"—a point of departure to distant places from Chicago. These technologies were later referred to by the name "Internet Explorer", and Internet Explorer 1.0 was an integrated element of the first version of Windows 95 provided to computer manufacturers, 2 ½ years ago.
In 1996, Microsoft created "Internet Explorer 3.0," a greatly improved set of Internet-related technologies which are built-in to every version of Windows. You may regard "Internet Explorer" as just a web browser application, but that would be quite an inaccurate way to think of it. In fact, "Internet Explorer" describes two things:
A set of platform technologies that any software vendor can use to make their application support Internet standards.
A user-interface that any consumer can use to view web-sites on the Internet or any other internet-standards-based network.
The first of these two things—the platform technologies—work just like the support for toolbars that Microsoft made a native part of Windows that anyone could use. Instead of requiring every separate software developer to assign a team of people the task of implementing computer code for handling Internet standards, Microsoft has written the code once and made it possible for anyone to use it.
It's worth pointing out the significance of this statement. When Microsoft developers wrote the computer code that provides Internet Explorer functionality, they set out to design and build a set of operating system services. This is very unlike Netscape Navigator, which is a free-standing application that does not provide a broad set of operating system services to 3rd party software developers.
In fact, every single pixel you see on the screen when you use the Internet Explorer browsing window was put there by operating system services that any vendor creating Windows-based applications can use. That is a huge efficiency and enables software developers to focus their energies on adding attractive new features to their products rather than focusing on the low-level plumbing required to handle Internet standards.
There are lots of examples already of applications using these platform services – even Windows itself relies on some of them to provide services to computer users. Let's look at three examples:
HTML Help. Today, the majority of applications written for Windows include "help" files along with their application. Most users expect this, so it's work that application developers need to do before they can market their products. Up until now, application vendors created their "help" files using a service of Windows known as "Winhelp".
The Winhelp system included a set of tools for software developers to author "help" files keyed to their particular application. After those specialized "help" files were created using those tools, they were compiled into a special Winhelp format, and the process was complete.
Unfortunately, because Winhelp was created before there was a rich document format like HTML in broad use, the Winhelp files that software developers created were not universally viewable. You couldn't easily create a document with images, animations and hyperlinks and make it available to everyone (they had to have Winhelp). You couldn't put the document on a network and enable people to view it from their machines, etc. Furthermore, there weren't a wide variety of tools available for authoring these "help" files.
Today, Microsoft has revamped the help system in Windows to base it on HTML, the universal document format. (Screen shot at left.)
This means that when an application vendor authors help files, the document created is universally viewable, and a much broader range of tools can be used to create it. Furthermore, the HTML standard is much richer than Winhelp was, so the content of help files can be made much better U even the background image at left wasn't possible with the old Winhelp system.
In Windows 98, Help for Windows itself has been rewritten to the HTML format. This was easier for the Windows Help team to produce, and it results in a better experience for the end user. In creating Windows 98 Help, the team also added some enhancements to HTML—offering features like compression—and thus converting an old proprietary system to align it with today's open Internet standards.
All this wouldn't be possible if support for HTML display wasn't built-in to the operating system. In order for any 3rd party software developer to decide to include HTML-based files as part of their application, they need to be assured that those files can be displayed on any machine—they need to know that users will not have to buy or download an additional viewer. In the same way application vendors can rely on the fact that support for toolbars is built into Windows, they can also rely on HTML support in the operating system.
Application User Interfaces. Over the years, application vendors have employed various services in the operating system to draw parts of their user-interface on the screen. When you look at an application like Lotus Notes, Microsoft Publisher or Corel Wordperfect—and in particular when you open a dialog box in one of these applications—the gray user-interface elements you see were probably created by the application asking Windows to draw them.
These user interfaces have worked well enough for the last 5 years, but now something better has come along.
The HTML standard, as a universal document format, is a great way to describe how user interface elements should be displayed on the screen. (Those elements need no relationship to a "web page" or to the Internet at all.) In fact, the basic screens of today's applications are terrific candidates for being authored in HTML. HTML offers very rich and attractive visual options, and furthermore—because it's an open standard—the tools that exist for creating HTML are very good and getting better quickly.
This means that it's possible for software developers to create better user-interfaces more easily by writing them in HTML. And today—now that Microsoft has included support for HTML in Windows itself—application vendors are beginning to take advantage of HTML's benefits without having to do all the work of writing the computer code necessary to display HTML themselves. One additional benefit of calling upon operating system services in Windows to display HTML is that if an application wants to include a page of content that does come from the Internet, it takes no additional work to display that as well. This makes for richer applications and less work for 3rd party software developers.
There are a lot of examples already of applications taking advantage of the HTML-rendering support built into WindowsUprobably more than you'd think. Here's a partial list:
ProComm95, ProComm Plus32 (Quarterdeck)
IPublish (Design Intelligence)
Norton System Genie (Symantec)
Money98 (Microsoft. HTML user interface shown at right)
Outlook, Outlook Express (Microsoft)
Windows desktop (control panel, folders, explorer, etc.)
Saving and Opening files from the Internet. You've undoubtedly taken it for granted that any new application you buy will enable you to save and open files on the hard disk inside your computer. You've probably also taken it for granted that the same application can save and open files from your Local Area Network if you have one. Of course, both these facts weren't always the case—before those capabilities were built into the operating system.
Today, it's becoming very important for applications to be able to save and open files from the Internet. You may not realize how important this is yet, but over time the Internet will become a more routine place for you to save and open files than even your local hard disk. Think of the potential benefits—you could get to your files from work, home, or any random airport; perhaps someone will back them up automatically for you. (In fact, today one company—@Backup—is building a business doing just this.) Already, lots of important scenarios, like creating your own web page, sharing documents with people outside your company, etc., require applications to be able to open and save files from the Internet.
This is another example of a platform service that's built into Windows in the portion of the operating system referred to as Internet Explorer. Again, you probably aren't even aware that some applications you're using now are able to save and open files from the Internet by taking advantage of this platform service provided by Windows.
Here's one exampleUthe dialog box below is part of Microsoft Word 97, and the image shows how it's possible to open Microsoft Word documents from the Internet, on any FTP server. The Word development team created this new feature by utilizing Windows' built-in ability to open or save files from the Internet.
Platform Services - Doesn't integration harm other peoples' businesses?
A common question relating to integration of new platform services into the Windows operating system is whether this practice is good for consumers and potentially harmful to Microsoft's competitors.
We thought the best way to respond to this was to ask software developers themselves, so we commissioned a 3rd party to survey a sample of software vendors that included both Microsoft competitors and partners.
We asked specifically about how the integration of Internet technologies in Windows would affect their business. Here's what they said:
85% said this integration will have a positive impact on their company
83% said there will be positive impacts for end users
80% said there will be positive impacts for the software industry as a whole
79% said it will be easier to create new applications and bring new capabilities to their customers as a result of the integration
Furthermore, you may wonder whether software developers as a whole think that integration of new innovations into existing software products contributes to the success of the software industry. In fact, the survey showed that the industry is growing as this phenomenon has been occurring—86% of software developers surveyed said their sales are increasing; while only 2% said their sales are declining.
Often, people claim that features built into the operating system by Microsoft make 3rd party solutions unnecessary, and that this harms the businesses of other companies. If you look at some actual case studies, however, it becomes clear that integration is not the primary determinant of the continued success of such companies.
MSN & Exchange Email – When Windows 95 shipped, the client software for the MSN online information service and a Microsoft Exchange email client were built into the operating system. The email client in particular is a great analogy to Internet Explorer. A significant part of the email client includes 3rd party services that any application can use (these are known as "MAPI" or Mail API), very much like the operating system services provided by the Internet Explorer component of Windows. In both these cases, the solutions built into Windows did not have any significant adverse effect on companies producing competing products—in fact, other online information services like AOL and many other email clients are doing very well compared to Microsoft's product offerings. This simply proves the point that consumers use what they like, regardless of whether something is included in Windows. Thus, if a competing product provides a more compelling user experience than a feature of Microsoft's operating system, consumers will opt for that competing product.
Internet Explorer versions 1 & 2. These initial versions of Internet Explorer were built into every single version of Windows 95 preinstalled on new PCs—if you bought a new PC, it included Internet Explorer as an integrated part of the operating system. During those years, Netscape Navigator rocketed to extremely high usage rates, which occurred despite the fact that a variety of Internet technologies, including web-browsing functionality, were built into Windows. (Note: Netscape Navigator can also be preinstalled on brand-new PCs—Microsoft allows computer manufacturers to add whatever software icons they like to the Windows desktop.)
In product reviews, early versions of Navigator consistently were picked as better than Internet Explorer. It wasn't until Microsoft created Internet Explorer 3.0 (and now 4.0) that reviewers chose Internet Explorer as superior to Netscape Navigator. And it has been during this more recent era that Internet Explorer's popularity has begun to increase compared to Netscape Navigator, proving once again that consumers can be depended upon to use the products they like.
File Management Utilities. When Windows 3.1 was very popular (before Windows 95 had shipped), a number of companies made very good businesses out of selling file management and other similar utilities for Windows. The Norton Desktop and Norton Utilities were a great example. As Windows 95 was being finished, many people believed that its built-in utilities (better file manager, built-in customizable desktop, graphical disk tools) would greatly diminish the popularity of the Norton products. However, what actually happened was that the developers of those products saw that Windows 95 presented them with an opportunity. They upgraded and revised their utilities, building on new platform services provided by Windows to provide new value to consumers above and beyond that being built into the operating system. As a result, Symantec's Norton Utilities for Windows 95 became a best-selling software package.
Finally, people sometimes wonder why Microsoft requires computer manufacturers and others who distribute Windows to include the complete platform of services, and not to pick-and-choose just the ones they want. The answer is simple—unless software developers can know in advance that the services they want to use (toolbars, sound, internet standards) will be present on a user's computer, then they must include that support in their own products. When that happens, it makes application installation more difficult, time-consuming and error-prone. (You may have seen those cryptic messages when installing a new application: "The file FOOBAR.DLL being copied is older than the one on your system. Do you want to keep the present one?" Huh?) By clearly defining the operating system services that are provided by Windows, we contribute to making application installation simple and reliable.
Overall, we firmly believe that integration of new platform services into Windows—and in particular support for Internet standards—provides great benefits to the community of application developers and therefore creates an improving environment for end-users. And we aren't the only operating system vendor who thinks this—Sun Microsystems has built Internet technologies into Solaris 2.6, and IBM has done the same with OS/2 Warp 4.
Integrating the User Interface to Benefit End-Users
We've explained the principle behind integration and the assistance that integration provides to software developers in keeping up with the ever-changing demands of consumers by freeing them to focus on improving the unique aspects of their products. We haven't yet discussed how integration is also beneficial to end-users.
In the general case, when new computer technologies are created, they tend to be added to Microsoft's user-interfaces as "new components". Often, the new component—perhaps a whole new application—has its own quirky characteristics compared to the old ones, and it takes quite a bit of learning for consumers to know how to use them both together.
A good example of this would be the separate programs in Windows 3.1 for managing files, printers, programs and other system settings. Back in those days, it was easier for us to just add another new program—even though it was different from the others—rather than to rewrite everything so that a single-user interface made it possible for a user to obtain easy access to all such information.
In Windows 95, one of the more significant steps forward was a single user interface paradigm—the "folder"—for access to everything from the files on your hard disk or LAN, to the printers in your office or printer room, to the settings for your modem. The nice thing about this is that once you've learned how to get to files on your hard disk, you already know how to get to everything else.
The same paradigm holds for integration of user-interfaces used to browse information kept in different kinds of storage devices. In fact, the evolution of the Internet has offered a lot of new user interface paradigms that Microsoft is using to make the Windows user interface better. Innovations like hyperlinks, back/next buttons, and type-in addresses make the whole PC easier to use.
Let's take just one example. In older versions of Windows, as you browse through your hard disk, you get multiple overlapping windows with no way to move between them when you go from place to place. When you use the browsing paradigms developed for navigating the Internet, you get a single window with back/next buttons, and it's easier to move from one file to another quickly, even if one is in Buffalo and the other in San Diego.
Making the Windows user interface work the same as web browsing software—and even better, making it so you can access locally and remotely stored information from just one window—means the whole concept of browsing any kind of content is just plain easier. What's more, integration of web-standards in the Windows user interface makes it possible to provide compelling and useful new features like the file preview shown at left possible.
Summary – Integration Makes Greater Innovation Possible
As the creators of the Windows operating system, we at Microsoft believe that perhaps the most significant part of our job is to make Windows a continually better platform, and in particular, to:
Deliver to application vendors the most important and useful platform services, so they can use those services as a foundation upon which to build their own innovative solutions to customers' needs.
Continue to make Windows an easy, comprehensive environment for end-users, so that the common tasks they want to do with their PCs are as simple and straightforward as possible.
We believe that the development of Internet standards has created a massive opportunity for the PC industry and for people who use PCs. We believe that it is our responsibility to provide enabling technology to bring those Internet standards to as many applications and as many people as possible.