The ability to run programs
inside small devices like cellular phones and
PDAs (Personal Digital Assistants) is one of
Java's best kept secrets. Sun, and other
hardware manufacturers, realized that Java's
virtual machine could easily be implemented in
silicon and placed in a wide variety of devices.
Already, companies have created cellular phones
and PDAs that run Java. In fact, Java itself
came from a project that created a small
handheld device.
One day, you may have a
refrigerator that runs Java. What would that
mean to you? Probably nothing, unless it makes
you play Tetris in order to use the ice maker.
The toaster has always been the appliance that
everyone wants to connect to the Internet. Yes,
someone has demonstrated a Java-enabled toaster.
In fact, Sun has considered changing its
trademark phrase "The Network Is The Computer"
over to "The Toaster Is The Computer." Okay, not
really. Still, if things continue in the
direction they are going, you will have more and
more pieces of equipment in your house that run
Java. This can be upsetting to an application
designer who is accustomed to thinking of the
desktop as the sole realm of applications.
This is where the notion of
separating the user interface from the
application really becomes important. You can't
cram some behemoth of an application into a cell
phone. You shouldn't even try. Take the flight
tracking system as an example.
Suppose the airline president
handed you his Java-enabled organizer and said,
"I want to see flights on this thing."
Fortunately for you, you separated the
application from the user interface, so all you
have to do is create a special user interface
for the organizer.If you had written the flight
tracking system as a big stand-alone
application, you would have already torn your
hair out in big clumps trying to figure out how
you were going to fit all that code into an
itty-bitty living space.
You may, in the future, have a
completely different computing model at home
than you do now. Right now, you probably have a
single computer, a printer, a monitor, and a
modem. Some of you even have your own ethernet
networks now. In the future, you may have an
application server on which all your favorite
programs reside-your e-mail system, your word
processor, and yes, your favorite games. This
server may not even have a keyboard or a
monitor, just a connection to your home network.
On your desktop, you might have a Java-enabled
monitor and keyboard that are also hooked to the
network. In the living room, your Java-enabled
television is also on the network. With the
coming of digital TV and high-speed networking
to the home, there may no longer be a difference
between a computer monitor and a television.
When you want to read your e-mail, you can
access it from the computer monitor, your TV, or
even your wireless digital assistant, all using
your home network to access the e-mail
application running on your home server. You may
not even have a server at home-you might
subscribe to an e-mail service over the network
and access a server somewhere in Tuscaloosa. The
point is that there are more and more ways for
you to interact with computer systems, and in
the future, one single way will no longer be
sufficient.
As you design your
applications, keep the image of a cell phone or
a personal digital assistant hovering like a
dark cloud over you, whispering menacingly,
"Will your application run on me?"