January 93 - Postcard from Windowsland
Postcard from Windowsland
I love my new job at Microsoft. It's like they created it just for me. "Look, buddy, we need a guy who can code sample applications, write magazine articles, organize developers' groups, and make presentations to software companies. Do you think you can do that?" Do it? Of course I can do it-that's what I've been doing, on the side, for FUN, for years now. And they're going to PAY me, too? What a deal!
But, boy, is it keeping me busy! My primary task right now is organizing a big conference that I hope you heard about, and maybe (by the time this goes to press) even attended-the Microsoft Windows Programming Conference for Macintosh Developers. You probably saw the full-page ad on the inside of the back cover of last month's Frameworks. If not, well, you probably got at least one direct mail piece about the conference-you know, the one that said "Thinking About Windows?" on the envelope.
By the time you read this, though, the conference will be over. It was held right after MacWorld/SF, on the 11th and 12th of January, in the Fairmont Hotel in San Jose.
Microsoft organized this conference as a response to developer demand. At the August MacWorld Expo, I conducted a very informal survey of Macintosh software exhibitors, and found that more than half of them wanted to send people to such a conference; they'd send about three people each, in fact. So, it was clear that there was a lot of demand.
We designed the conference to address the needs of experienced Macintosh developers who wanted to leverage their existing knowledge of the Mac when learning Windows. Most books, magazine articles, and courses on Windows programming assume that their audience is composed of DOS programmers. For this audience, a lot of the concepts in Windows are new: mice, windows, menus, event-driven programming, user-centered design, etc.. But for those of us who have mastered the Macintosh, these issues are old news; wading through all that chaff makes learning Windows harder than it should be.
Furthermore, we found that a lot of Macintosh developers wanted to port their Mac applications to Windows as quickly as possible. They had invested a lot of time and money in Macintosh code, and they wanted to keep as much of it as possible.
So we focused the conference on two objectives: explaining Windows programming from a Macintosh perspective, and exploring case studies of how some well-known Macintosh applications were ported to Windows.
The first objective was addressed on the conference's first day. Sessions like "Windows System Architecture" and "Programming Windows (I, II, and III)" explained how Windows worked and how to program with it, using constant analogy to the Macintosh. These sessions were followed that afternoon with breakout sessions on networking and databases, multimedia, and Windows NT.
The second objective-porting-was addressed on the second day. Starting off with a session on "Writing Portable Code," we moved directly into case studies of three award-winning Macintosh applications that have been ported to Windows: Fractal Design's Painter, Aldus' PageMaker, and Software Ventures' Microphone. Each took a different approach to porting.
Fractal Design ported Painter to Windows using Altura Software's Mac-To- Windows technology toolkit, which (in effect) implements the Macintosh Toolbox on Windows. This technology allowed Fractal Design to port Painter to Windows with only minimal changes to their original Macintosh source code. This is clearly the quickest and easiest porting solution, if your application's code falls within the subset of the Macintosh Toolbox implemented in Altura's toolkit. (For more information, Altura can be reached at AppleLink address "ALTURA".)
Aldus wrote PageMaker (specifically, their story editor) using VAMP, a cross-platform object-oriented application framework. Similar in concept to Bedrock, the framework being developed jointly by Apple and Symantec, VAMP abstracts much of the underlying operating system and user interface. The target platforms are implemented differently, but abstracted uniformly, within VAMP. This allows applications written to VAMP to work on both Mac and Windows. This approach to porting requires that the application be written to a non-native API, but if you were planning on rewriting your application anyway, this approach is worth considering. (Unfortunately, it also requires a high-quality, cross- platform, object-oriented application framework, of which none are now commercially available; VAMP is proprietary.)
Software Ventures ported Microphone to Windows by rewriting it directly to the Windows API. This resulted in two versions of their code, one for Mac and one for Windows, with only a small amount of code shared between them. While this might appear to be wasteful, it has actually allowed Microphone to respond quickly to user demands, maintaining their award-winning standards of quality on both platforms. This approach is most appropriate for those application which expect to have the Windows version drive their sales (and thus development) in the future.
Finally, the conference considered the portability of the Windows API itself, both via the hardware portability of Windows NT (currently planned for Intel, MIPS, DEC Alpha, Intergraph's Clipper, and who knows what else in future), and the portability of the API across operating systems (including Windows 3.1 and Windows NT, as well as Unix and, maybe someday, the Macintosh). The message: "write to the Windows API, and it will take you everywhere."
If we get enough interest, we may be able to hold this conference again later. So if you were not able to attend, but wish you had gone, just wait, and maybe you'll be hearing from us again.
In the meantime, if you'd like to hear about the latest and greatest tools and techniques in object-oriented programming, from Microsoft as well as Apple, Symantec, Electron Mining, and others, register today for the Fourth Annual MADA Conference in San Diego (MADACON '93). I'll be there-heck, it's part of my job to attend fun events like MADACON. (and they're paying me for this?)
I hope to see you in San Diego. Be there or be tetrahedral!