Electronic Review of Computer Books

[ ERCB Home | New | Feature | Brief | DDJ | Letters | Links ]

[an error occurred while processing this directive]

Vital Statistics

Title Programming Windows 95
Authors Charles Petzold and Paul Yao
Publisher Microsoft Press
Redmond, Washington
http://www.microsoft.com/mspress/
Copyright 1996
ISBN 1-55615-676-6
Pages 1100
Price $49.95


The Book That Time Forgot

When the first edition of Charles Petzold's Programming Windows appeared in 1988, it was the answer to the prayers of Windows software developers everywhere. Programming Windows didn't go into a lot of depth on any given topic, but it was elegantly written, logically organized and presented, its explanations were lucid, its code was solid and well-documented, and it had extraordinary scope -- almost every nook and cranny of Windows programming was at least touched upon. In a very short time, Charles' work became the gold standard for Windows developers, and so it remained through the second and third editions, released concurrently with Windows 3.0 and Windows 3.1 respectively. Although other Windows programming books eventually appeared, none was ever in the same league with Programming Windows or sold a fraction as many copies.

Usually tools and systems sell the books about them, and not vice versa. But I think it's fair to say that Programming Windows contributed very significantly to the credibility and success of Microsoft Windows. If developers had been forced to rely solely on the incomplete, inaccurate, and frequently nearly incomprehensible systems documentation produced by Microsoft -- not to mention the buggy and baroque example programs provided with the Windows SDK -- the delay in the appearance of most shrink-wrapped applications would have been much greater, and the barrier to entry for casual C programmers of freeware and shareware would have been nearly insurmountable. I know that I personally owe a great deal to Charles' fine book, which sustained me through many dark days of struggling with the system's idiosyncracies while developing my own company's first Windows product.

Unfortunately, while Windows itself has dramatically grown and evolved, Programming Windows has failed to keep pace -- Programming Windows 95 is philosophically and structurally little changed from the previous three editions. True, the graphics chapters have been consolidated and moved to the front of the book, the memory management and printing chapters have finally been completely revised, and new chapters on the common controls, multithreading and multitasking, and OLE have been added (apparently written by Paul Yao, whose name is on the spine of the book but not on the cover or title page). But many example programs and some entire chapters are barely different from those found in the original Windows 2.03 version of the book. The code is still written in straight C with lengthy switch statements for message processing, MFC is ignored, and an alarming number of important Windows-95 programming issues are simply not mentioned at all. The organization of the book is no longer a good fit to developers' needs either, given the near-ubiquitous use of visual development environments, wizards, and application frameworks.

In retrospect, Charles has been sending us signals for years that his heart really isn't in it any more. (I suspect a lot of the responsibility for this can be laid at the door of Microsoft's shameful treatment of OS/2 and Presentation Manager, but that's a subject for another essay.) For example, the memory chapter in the second edition was still heavily focused on real mode segment management and discussed protected mode almost as an afterthought -- even though protected mode operation and its relief of application memory constraints was easily the most important new feature of Windows 3.0. Similarly, the third edition for Windows 3.1 barely mentioned the common dialogs and the DDE management library, and completely neglected the new printing functions such as StartDoc() and StartPage(), even though these represented extremely important extensions of the traditional Windows API and helped position programmers for easy migration of their applications to WIN32. In short, both the second and third editions appeared to be hurried and largely superficial updates of their predecessors. Regrettably, the Windows 95 edition didn't get the total overhaul it deserved, either.

Although Programming Windows 95 is beautifully written, edited, and produced, and I feel quite sure that programmers will buy it religiously out of respect for Charles' reputation and the previous editions, the present book definitely falls in the category of "nice to have" rather than "must have." In an era where applications must run under both Windows 95 and Windows/NT and must support OLE, drag-and-drop, the system registry, and smooth installation and de-installation (among other forbidding complexities) to get the coveted Microsoft seal of approval, no developer can afford to write Windows applications the old-fashioned way any more. Life is too short! Programming Windows 95 is useful in much the same sense that Adrian King's Inside Windows 95 is useful -- it provides a broad perspective on how the system works. But professional programmers seeking practical guidance on how to write modern Windows applications must look for it elsewhere.

-- Ray Duncan


Quick Rating

Readability StarStarStarStar
Originality StarStar
Organization StarStar
Accuracy StarStarStarStar
Consistency StarStar
Depth StarStar
Timeliness Star
Editing StarStarStar
Design StarStarStar
Overall Value StarStar

Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.


Copyright © 1996 Electronic Review of Computer Books
Created 8/1/96 / Last modified 8/1/96 / webmaster@ercb.com