Cross Platform
Volume Number: 11
Issue Number: 3
Column Tag: Inside Info
The Platform Problem
Going cross-platform for the wired generation
By Chris Espinosa, Apple Computer, MacTech Magazine Regular Contributor
Listening to Microsoft pitch their cross-development environment for Macintosh
reminds me that I’ve been working on solving the platform problem for over three
years now.
In case you joined late, the “platform problem” is the dilemma that an industry
faces when there’s one dominant standard, and a number of minority players who can’t
unseat the dominant player because of the huge infrastructure supporting the standard.
Having more than one platform makes it look like things are competitive, but the
reality is that the minor players really don’t have a chance to gain on the dominant
standard in the markets it dominates.
Intel vs. everyone else is a good current example; so is Windows vs. OS/2, Mac,
UNIX, Novell, NextStep, etc. The dilemma I face is how to help developers continue to
make superior products for the Mac OS, even though the customers and the industry
infrastructure favor the Windows platform.
And you’ve seen a lot of attempts by Apple to solve this. Against DOS, it was less
of a problem, because there were so many things in the Mac OS that just didn’t exist on
the DOS side. With Windows, that differentiation is small enough that many customers
perceive that the Mac’s difference is a liability, not an asset. So to bridge the gap
between Mac and Windows, we’ve tried running the Windows OS on Mac hardware;
porting the Mac OS to Intel hardware; writing a new cross-platform OS from scratch
(Taligent CommonPoint); creating a complete application framework to encourage
cross-platform applications (Bedrock); creating a cross-platform component
application technology (OpenDoc); doing a cross-platform framework for OpenDoc
(OPF); building cross-platform APIs (QuickTime) and media playback platforms
(Kaleida Media Player); and the current favorite, licensing the Mac OS to clonemakers
to expand the Mac OS market share. We’ve done these alone, with partners, and
through joint ventures. Some we’ve shipped; others were killed before they got too
expensive. (And a couple just got too expensive without being killed!).
Through all of this, Apple’s OS market share has remained at pretty much exactly
what it was in 1983, after the ascendancy of the IBM PC and the beginning of the IBM
clone market. Maybe cloning will change that (after all, so many smart people told us
to do it ten years ago that they must be right!). But maybe there is something else that
will change the rules and make this API war irrelevant.
Think about what we would like to be able to do. Write something once and deploy
it on many platforms. Have a common programmatic interface, but take advantage of
the native user interface of each machine. Integrate smoothly with the underlying OS.
Be lightweight. Be accepted as a common industry standard, neither monopolized by a
single company nor designed by a committee. Support all of the cool new technologies,
like multimedia and networking. And be quick about it - we can’t wait until 1997 to
have it running.
Well, there may be an answer: the World Wide Web.
I’ve been cruising the Web recently, and I think it’s remarkable how
platform-neutral it is. By reading the file names in the HTML source code you can see
which hosts are on a Windows OS, which are on UNIX, and which Mac; and it’s clear
from the credits on some home pages that a tremendous variety of Sun, HP, IBM, SGI,
DEC, Dell, Compaq, Apple, and other equipment is being used as hosts. The Web is an
incredibly huge heterogeneous environment running a single application that looks the
same to the end user, regardless of the combination of client and host.
This may be the great equalizer that renders the API wars obsolete. Already I can
see a large number of applications that I use in my work life that could be implemented
as a combination of FTP, Gopher, Archie, and WAIS services, front-ended by a home
page. I’ve seen Web pages that are very nice forms-based front ends to Oracle, DB/2,
and Sybase databases. When I use these pages it’s clear to me that they are fulfilling
my cardinal rule of computing: they’re helping me get my work done without my
noticing what technologies are being employed to do it.
It is said that on the Internet, nobody knows you’re a dog; well, nobody knows
you’re a Performa, or an Indy, or a Presario either. This is crucially important.
Microsoft made Windows a phenomenon by changing the definition of what constituted
compatibility with the industry standard. Before 1992, being a clone of the IBM PC AT
defined compatibility; after 1992, running Windows did. If in 1995 the definition of
compatibility is “can browse the Web,” a huge emotional weight will have been lifted
from the personal computer industry. The Mac can be industry-standard-compatible
without running Windows!
Of course HTML and WAIS and Gopher aren’t an API. Can they grow to be one?
Perhaps. Is the growth process in reasonable, safe hands? I trust the people who built
the Internet more than I trust the people who built the Pentium. Can the Web software
form a solid layer of abstraction that masks underlying differences in OS and
hardware? For many applications, yes. For all? Of course not.
Nothing will ever eliminate the differences in processor opcodes, system calls,
and implementation details that make cross-platform programming such a pain.
Programmers get paid to bridge those differences elegantly. The point of the Web
becoming the next platform is that the popular mind will be saved from having to
worry that those differences make a difference. The fear of buying a minority standard
will be greatly decreased if all computers are assured a high level of basic
functionality and interoperability through the Web. Then we can let Mac be Mac,
Windows be Windows, and turn Mac vs. Windows from a worldwide religious feud back
into a simple design preference among engineers.