January 93 - Postcard from Windowsland
Postcard from Windowsland
James Plamondon
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!