![]() |
|
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
| Readability | |
| Originality | |
| Organization | |
| Accuracy | |
| Consistency | |
| Depth | |
| Timeliness | |
| Editing | |
| Design | |
| Overall Value | |
Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.