March 92 - Postcard from Windows Land - Getting to Windows Land
Postcard from Windows Land - Getting to Windows Land
In previous columns I discussed why one would want to go to Windows land, and what one might find there. This one is about how to get there: the books to read, the classes to take, the on-line services to subscribe to,
and so on.
Read these books
First you'll need a copy of the "Microsoft Windows Programmer's Reference, Version 3" from Microsoft Press (1990). It is the Windows equivalent of the Mac's "Inside Macintosh"-and who would even consider writing a Mac application without a copy of Inside Mac? The Programmer's Reference contains all of the information found in the notorious "Microsoft Windows Software Development Kit," or Windows SDK-and it's a lot cheaper. Get it first.
Next you'll need a copy of "Programming Windows" by Charles Petzold. This is the book you'll eat, drink, and sleep with while learning to program Windows. It's like Scott Knaster's "How to Write Macintosh Software," but bigger and even more detailed. The best way to learn Windows programming is to sit down with a compiler and actually walk through each and every example in the book, coding them up, trying variations, and so on. I don't know anyone who's ever learned Windows this way, of course; usually, you have to become the company's official Windows guru by next Tuesday. Still, this is the best book to start out with. Be sure to get the second (or later) edition.
Unfortunately, you can't yet write Windows software without knowing D… DO… (Jeez, I can hardly force myself to say it…) DOS (whew!). DOS proves that there really is evil in the world. Windows is cursed by it. All of Windows' worst flaws can be traced to the fact that it runs on DOS. But there's no escape; for the next few years, at least, to learn Windows, you must also learn DOS. To that end, you need to get a copy of the "DOS 5.0 User's Manual," from Microsoft Press (1991), and a copy of the "Microsoft MS DOS Programmer's Reference (Version 5)." Think of them as tomes of incantations with which you can chain evil spirits and make them do your bidding, and you won't be far wrong. You gotta have 'em, or the evil spirits will make your life miserable.
Moving back to Windows itself, you should get "Peter Norton's Windows 3.0 Power Programming Techniques," by Norton and Yao, published by Bantam (1990). It contains an excellent treatment of Windows' memory management, which you are going to find to be shockingly primitive. However, if you're going to write Windows programs, you need to know this stuff. In a year or two, after the Windows world moves to a flat 32-bit linear address space, Windows memory management will be much simpler (perhaps even simpler than it is on the Mac); but for now, this memory-management stuff is a painful necessity.
Another good Windows programming book is "Microsoft Windows 3 Developer's Workshop," by Richard Wilton, Microsoft Press, 1991. It contains an excellent discussion of the OOP nature of Windows, in addition to other useful bits of Windows info. Also, there's "Windows 3: A Developer's Guide," by Jeffrey M. Richter, M&T Books, 1991. This book should be called "Eight Cool Windows Programming Examples, with Source, Bound, with Three Disks." And then there's "Zen and the Art of Motorcycle Maintenance," Robert Pirsig. It has nothing to do with Windows programming, but you ought to read it, anyway, just because it's such a good book.
Subscribe to these magazines
There are a number of magazines devoted to Windows programming. The most highly esteemed is the Microsoft Systems Journal (universally referred to as "the MSJ"). It is to Windows programming what d e v e l o p is to the Macintosh. You gotta have it. To get it, write Circulation Department, Microsoft Systems Journal, POB 1903, Marion, OH 44305, or call (800) 669-1002.
Also, there's the Windows Tech Journal, which is to Windows what MacTutor always should have been to the Mac-a high-quality technical magazine, kinda like the short-lived MacTech Quarterly tried to be. It doesn't worship Microsoft quite as blatantly as the MSJ does, and it attracts some really top-notch authors (yeah, OK, I've written for it). You could live without this one, but you shouldn't. To get it, write to Circulation Department, Windows Tech Journal, POB 70167, Eugene, OR 94701-0110, or call (800) 234-0386. Tell 'em I sent you. (They won't give you a discount if you do, but please tell 'em anyway.)
Then, there's the infamous Windows Magazine. It is roughly equivalent to MacUser Magazine, but it has a very weird history. It started out as OS|2 Magazine, but when Windows 3 came out, it changed its name to OS|2 and Windows Magazine. As Windows increased in popularity, and OS|2 started to fade, the magazine changed its name to "Windows and OS|2 Magazine." Finally, just a few months ago, it gave up on OS|2 and became simply "Windows Magazine." I wonder-if the new, soon-to-be-released version of OS|2 becomes really popular, will "OS|2" creep back into the magazine's name? Either way, you can subscribe by writing Circulation Department, Windows Magazine, POB 58649, Boulder, CO 80322-8649, or calling (800) 284-3534.
Take these classes
Just as Apple has its Developer University, Microsoft has Microsoft University, which offers live classes in Seattle, and video courses. The one-week "Introduction to Windows Programming" class is very well regarded. I took the video version, and got a lot out of it. You can get a current catalog by writing Microsoft University, One Microsoft Way, Redmond, WA 98052-6399, or calling (206) 828-1507.
You can also take classes on Windows programming at industry conferences and seminars. These classes tend to be pretty cheap, unless you have to pay air fare and hotel bills to attend the conferences. If you happen to live in the San Francisco or Boston areas, though, these can be a real winner. There's the Windows and OS|2 Conference, put on by CM Ventures, which you can reach at 5720 Hollis Street, Emeryville, CA 94608, or by calling (510) 601-5000. Or, you can attend Software Development '92, which is put on by Software Development Conferences and Shows, at 600 Harrison Street San Francisco, CA 94107, or (415) 905-2741. There are number of other, smaller conferences; look for their ads in the magazines mentioned above.
Windows programming classes are creeping into the college extension catalogs. Of the schools near me, in the San Francisco Bay Area, both UC Berkeley and UC Santa Cruz offer Windows-related classes. The big technical schools in your area probably do, too; give them a call.
Use your modem
I hope that, as a MacApp programmer, you're familiar with MacApp2Tech$ and MacApp3Tech$ (neé MacApp.Tech$ and MacApp3Beta$, respectively). These on-line bulletin-board-like services are the very best way to get answers to specific questions you might have about MacApp. There are a couple of equivalent services for Windows programmers, and you should make the most of them.
First, there's Microsoft Online, which is Microsoft's answer to MacDTS. It is pretty expensive, but it's worth it. MS Online has lightning-fast response time; my questions are usually answered within the day they are submitted, by a real live human being who calls me up with the answer, to make sure that it answers the question I meant to ask. MacDTS could learn a lot from the way MS Online works.
Then, for a more informal, relatively inexpensive, MacApp2Tech$-like service, there's the MSDEV forum on CompuServe. The quality of the information is somewhat lower than it is on MacApp2Tech$, unfortunately. You don't get the equivalent of Kurt Schmucker and Larry Rosenstein on the other end of the line. But, even so, it's a lot better than nothing.
Join a local group
Being in the heart of Silicon Valley does have its advantages, and one of them is the concentration of expertise in the area. There are local groups that meet on a monthly basis to discuss every conceivable aspect of software development (and zillions more concerned with hardware-you know, "hardware"-that weird-looking junk on your desk with all the wires and fans and stuff).
Therefore, of course, there are local groups devoted to Windows programming. One of the largest, with about 100 regular attendees, is the Software Entrepreneur's Forum's Windows Special Interest Group, or SEF WinSIG. It has the clout to attract speakers of considerable note. To join the SEF WinSIG, contact Fran Finnegan, at CompuServe address 76244,145, or by phone at (415) 929-7386. If you don't happen to live around here, maybe you can start up your own local Windows programming SIG.
Once you've made the decision to go to Windows land, I hope that this information will help you get there with a minimum of fuss and bother. It's still a lot like leaving a civilized country and going on safari in a wild, untamed place; but with information to lend you aid and comfort, your trip should be both pleasant and productive.