Al is a contributing editor to DDJ. He can be reached at astevens@ddj.com.
Adrian King's Inside Windows 95 is the first of what will be many books on the subject of Microsoft's next operating system, previously known by the code name "Chicago." This book is more notable than most first books because it was published in October 1994, which means that the majority of the work that went into the book occurred almost a year before Windows 95 is due to be released.
King is a former Microsoft employee who was involved in the development of earlier Windows versions. Apparently Microsoft granted him an inside track to write the Inside book for the new release, guaranteed to be a best seller based solely on the subject: Interest in Windows 95 runs high. Microsoft has been open about allowing journalists to publish some aspects of the new features, teasing a user community thirsting for more information. Screen shots of the new shell and dialog boxes are common in press preview articles; as a result everyone is familiar with the new look well before release.
A Microsoft employee appeared as a guest on Public Television's "Computer Chronicles" and demonstrated Windows 95, prefixing the answer to each of the host's questions with an enthusiastic, "Exactly!" The same show hosted representatives from several applications vendors demonstrating their products running on Windows 95. Effective marketing, all this, but it has a certain tabloid appeal, as well. Just as books about O.J. hit the stand before the ink was dry on his arrest sheet, books about hot, new software products appear as soon as there is a market for information, whether or not there is a product to use or anything to report. Magazine articles and TV shows are one thing; they address current events and are soon discarded and forgotten. Books are another thing; they persist long after their information perishes.
It is a disturbing trend. How do you write a comprehensive book about a beta operating system and publish it almost a year before the product's scheduled delivery? (Ironically, a footnote on page 2 of the book dresses down PC Week for publishing a review of an illegal copy of the beta "almost a year in advance of the product's planned release date.") There are two problems. First, everyone with sufficient inside information is either under the nondisclosure agreement (NDA) or is a Microsoft employee. Second, the product is bound to undergo significant changes between the publication of the book and the product's release, which has slipped several times since the book was written.
The first problem vanishes when the product's vendor is also the publisher of the book. Since Microsoft owns Microsoft Press, it is in a position to give dispensation to an author and release him from any vows associated with his former employment and exposure to the beta software. As a side benefit, they control the book's content. Now that their book is on the shelves and has captured the first-look market, Microsoft has relaxed the NDA, and you can expect a plethora of Windows 95 books, several by the time this review is published.
The second problem, that the book is obsolete before it hits the shelves, is addressed this way: Who cares? No one involved in the book project does, that's for sure. Otherwise they wouldn't publish it. Only some other authors who do not have the Redmond blessing, who have dutifully honored their nondisclosure agreements, and who were scooped by the authorized book, would care. Nobody else. The author gets paid, the publisher makes a pile, and users and programmers get some information, no matter how perishable it might be.
Timeliness notwithstanding, how good is the book? Well, if the content is accurate, and if the details are not overtaken by events, it's pretty good, at least for the programming reader. Windows 95's goals and underlying architecture should have been firmed up in time for this book's release, and those are the details that programmers want to know. The user interface is bound to change, and several parts already have, but those changes will have little effect on your plans to write software. Even if you have betas of the OS and its development tools, this book is still the best source for an overview of Windows 95's operating and development environment. Developers who are planning to port their applications to Windows 95 or to develop new applications should read this book first.
I'm writing this review in late 1994, and Beta-2 has just been released. The author used Beta-1. With one significant exception, the reports of the author coincide with my observations of Beta-1. On page 17 the author discusses performance. He says, "By the time of the Beta-1 release, Windows 95 performance was already as good or better than Windows 3.1 performance in almost every respect." Balderdash. Perhaps the operative word is "almost." Perhaps he figured it was safe to make the claim since only someone under nondisclosure could reliably contradict it. Nonetheless, I had to replace a venerable old ST-251 40-Mbyte hard drive with something considerably faster to achieve even moderately acceptable Beta-1 performance. It took forever to load applications. The same system ran fine under Windows 3.1 with the old disk drive. One user reported that his 486DX2/66 with 8 Mbytes of RAM was running Beta-2 about 20 percent slower than Windows 3.1. Subsequent betas are supposed to do a better job of hitting the Windows 3.1 benchmark, but this book serves no good purpose by perpetuating such misleading, Microsoft-serving claims.
Chapter 1 introduces Windows 95, giving the history of the Windows product line and the motivation for the new version. Among the reasons for a totally new operating system rather than another upgrade to DOS and Windows are:
If you already understand Intel processor architecture or don't really care to, you can skip Chapter 2. There is one important point, though. Windows 95 is not destined to be a portable operating system like NT. Windows 95 was developed for the Intel platform, and that is where it stays, according to the book.
Chapter 3 is entitled "A Tour of Chicago." (Throughout the book the code name "Chicago" keeps popping up, revealing how close publication was to the name decision.) The tour includes an overview that explains how Windows 95 manages multitasking, scheduling, and memory; describes virtual machines and devices; and addresses Windows programming at a high level. This chapter is where programmers get their first look at the Windows 95 operating-platform architecture. You learn that the API is a subset of Win32 but that Windows 95 adds features not available to the Win32s API or NT. There is a brief description of event-driven programming and message handling, the underlying programming model of most GUI operating environments. Chapter 4 is more of the same, but with more information about the operating-system internals. It explains 386 protection rings and privilege levels and how the operating system uses them. A 4-gigabyte virtual-memory map shows how Windows 95 organizes the DLLs and applications. The chapter introduces Windows 95 threads, which are new to Windows and similar to the scheduling mechanism used by NT.
Chapter 5 will get the most attention from users. It describes the new, improved user interface and shell. Windows 95 adopts a user interface that looks something like OS/2's, but Windows 95 adds some features of its own. According to the book, these changes are the product of an exhaustive study by Microsoft of the way that users work and the attendant problems with the Program, File, and Task Managers used in Windows 3.1. The book does a thorough job of describing the Windows 95 solutions to the inherent Windows 3.1 user-interface problems, addressing how the new features work and what motivated their creation. Not only does the shell change its face, but application programs change, too. Because legacy applications display their screens with calls to the Windows API, even those old applications take on the new Windows 95 look when you run them under the new operating system. In addition to a different, sculptured look to frames, menus, dialog-box controls, and so on, the drop-down menus behave differently--more like the Macintosh--and there are several new user-interface controls. Programmers should pay attention to this chapter. New and ported applications should strive to use the best of the new user-interface features.
Chapter 5 also discusses several user-interface features that were considered and discarded. There are even some screen shots of abandoned features. The chapter explains the rationale behind some of the decisions.
Programmers will be happy to learn that online-help files are going to be less complex than those of Windows 3.1, which reduces the work involved in building online-help databases. The move is toward less information in online-help files, with, I suppose, the complete user's guides on CD-ROM. You don't have to comply with that model, but Windows 95 does, and applications are expected to fall in line.
The author is critical of one change to the user interface, and I agree with him. They added a button to the upper right of every window. It is the Close button, and it has an X to identify it. Somebody decided to put the X button where the maximize button used to be. Since it occupies the traditional (legacy?) maximize-button position, and since X is traditionally identified with the maximize command on the control menu, the result is predictable; every time you want to maximize a window with the mouse you close the window. You can't help yourself. It takes a while to get used to the new feature, and then it causes greater confusion when you return to a Windows 3.1 or NT installation. It was a dumb move on Microsoft's part, but I am told that they intend to stick with it.
Chapter 6 discusses the Windows 95 APIs: Win32, User, and the GDI. Chapter 7 describes the file system and explains how they applied a clever hack to come up with a FAT that supports legacy DOS file systems along with long filenames in media that can be used by both environments.
Chapter 8 is about Plug-and-Play. If all the hardware designers cooperate and design to that specification, you will not have to understand the entrails of your adapter cards to install a new one. Chapter 9 is about networking, and Chapter 10 discusses the features of Windows 95 that support mobile computing, most notably an accessory called the "Briefcase" that keeps your documents up to date between the office machine and the laptop.
Copyright © 1995, Dr. Dobb's Journal