The story goes that when Bill Gates brought Gordon Letwin aboard to write the Microsoft Basic compiler, Letwin hung a sign on his office door that read "Do not disturb, feed, poke, tease_the animal." Five months later, Letwin emerged from his den with a compiler that was to become the basis for all future versions of MS-Basic. From those days of MS- and PC-DOS, Letwin went on to become chief architect of Microsoft OS/2 1.x. Windows 1 was the first Intel-based GUI, and OS/2 was to be the logical migration path. When the Microsoft/IBM arrangement abruptly ended, so did the era in which Microsoft provided the operating system and IBM the hardware. Although they got the OS/2 code base as part of the deal, IBM reportedly rewrote OS/2 from scratch. Nevertheless, the indelible fingerprints of Microsoft were left upon the design of OS/2 while Microsoft would soon announce yet another new operating system--Windows NT.
Developing an operating system from scratch is not a trivial task, however. IBM, for example, took more than a decade to develop its operating system for the IBM/360. As Microsoft discovered, it's much cheaper to build an environment on top of an existing operating system. OSF designer and architect Vania Joloboff came to this same conclusion in designing versions of Motif, which is based on the X Consortium's Intrinsics Toolkit (Xt). In a talk at the 1991 TOOLS conference, Joloboff stated that a primary goal in designing early versions of Motif was to provide a look-and-feel as close as possible to Windows. The trade-off, of course, is performance. As NT becomes available on non-Intel platforms, UNIX users will have to make a similar choice.
But developers like Letwin and Joloboff are becoming an endangered species, as the mystique of the midnight programmer gives way to the group-grope of team development. That's one reason why Windows programming has never been more difficult. Microsoft's approach of throwing into the operating environment everything but the heat sink already means developers must deal with system services for graphics (GDI), video and sound (multimedia extensions), pen support, online help, interapplication communication (DDE and OLE), multitasking, and more. And on the horizon, there are even more features--it's reported that the new Chicago, or what many regard as Windows 4, will include network services and support IPX/SPX protocols. Team members must specialize in particular domains of expertise such as the user interface, network support, graphics, and the like.
This issue of Dr. Dobb's Sourcebook of Windows Programming brings you its own team of domain experts who share their experiences with and insights into the Windows and Windows NT environments. Many of the techniques, such as Craig Lindley's dynalinking and Al Williams's method for simulating pipes under Windows, are quite unique. Others, such as Joseph Newcomer's method for avoiding the limitation on the DOS Path environment variable, will help you in everyday programming. Dick Wilmot, Rick Knoblaugh, and Joe Hlavaty present utilities that you can use to probe the inner workings of Windows. And to get the most out of the development environments you use, Joachim Schürmann describes how to squeeze more performance from Visual Basic programs. Finally, Vinod Anantharaman returns to Dr. Dobb's to share his techniques for subclassing with the Microsoft Foundation Class library.
Creating great Windows programs will never be easy, no matter what the spin doctors tell you about visual programming, custom controls, class libraries, or other ease-of-use tools. The best source of tools and techniques for building the best Windows applications are your fellow programmers who, like the authors in this issue, graciously share their expertise with you.
Michael Floyd
executive editor
Copyright © 1994, Dr. Dobb's Journal