The Mobile Developer
by Eric Giguère
HDML/WML: HyperCard For Wireless Devices
Our industry is quite adept at dressing old
concepts in new clothes and presenting them
as the "hot new thing". Remember Java and
its vaunted cross-platform portability? The
way the press fauned over it, you'd think
they'd never heard about Pascal's P-code.
(Don't get me wrong, I'm a big Java fan,
I just found the initial fuss kind of amusing.)
When you come across some "new" technology,
take a close look underneath and you're likely
to discover it's not so new. You may be suprised
to learn that both HDML and WML are really just
reincarnations of HyperCard.
If you're unfamiliar with HyperCard, here's
a quick overview: a HyperCard application
is a stack of cards. Each card can display
text, images, input controls, etc., and
the card can have various actions associated
with it. As the application runs it switches
from card to card -- the "topmost" card being
the one the user interacts with.
Originally released by Apple in the middle 80's for
the early Macintosh computers, HyperCard
is still a shipping product. You can read about it at
www.apple.com/hypercard.
The product's been considerably enhanced over the years
to include support for advanced multimedia. And it spawned
a number of imitators for other platforms. I think I still
have a copy of one, CanDo (for the Amiga), in my basement
somewhere (along with my Amiga!).
The basic concepts in HyperCard -- the stack/deck metaphor,
the ability to navigate between cards programatically and
in response to user input -- are central to both HDML
and WML, except of course HyperCard wraps it all in a
nice GUI interface. This is one area where HDML/WML are different
from HTML. There's no concept of grouping pages of information
together in HTML -- each HTML file is basically a complete,
independent page. But in HDML/WML the page is split into a series of
cards, each containing a piece of the larger "virtual"
page. The closest you can come to this with HTML is by
using frames, but frames are really just a way of embedding
independent pages within another page -- not really the
same thing.
You can even think of HyperCard as the ultimate
predecessor of the "wizards" that are found in so
much software today. And when you're writing at
HDML/WML application, you're basically writing
a wizard.
Isn't it neat how yesterday's technology can gain
new relevance?
Eric Giguère is the author of
Palm Database Programming: The Complete Developer's Guide
and an upcoming book on the Java 2 Micro Edition. He works
as a developer in Sybase's Mobile & Embedded Computing division.
Visit his website at www.ericgiguere.com
or send him mail at ericgiguere@ericgiguere.com.