point
Menu
Magazines
Browse by year:
August - 2002 - issue > Below the Radar
Device Platform Shootout
Thursday, August 1, 2002

PALM, WIN-CE, SYMBIAN, J2ME, BREW–THE
platform choices for a mobile device programmer
today are myriad and often confusing.We will try to
set out some objective comparisons across these
platforms based on the factors that affect the
programmer of these devices. The process model, threading
support, memory management, language support, messaging
support, event based programming, file system/database
support, user interface choices and media support are factors
that affect the developer more than the user. These factors
determine the ease and complexity of applications that can be
developed for these platforms, and will be the focus of this
article. Also we will only consider native application
platforms, not browser-based environments like WAP.

Process/Threading Model: The process model supported
by the device determines the complexity and flexibility of
applications supported by the device to a large extent.WinCE
and Symbian score above the others in this aspect with their
support for a multi-tasking, multi-threaded environment.
Symbian in addition is written ground-up to support a cooperative
multi-tasking environment and to support
asynchronous calls for many of its system calls. While the
Palm OS itself is a multi-tasking multi-threaded system, the
APIs are not exposed to the user. J2ME provides a multithreaded
Java environment and the specification itself doesn’t
prevent multiple midlets from being executed concurrently,
but most implementations will provide only an environment
for executing a single midlet at a time.

Event Based Programming: The core model supported by
all these platforms is an event-based one. But the need for
event-based programming may not be as obvious when
starting out with J2ME and WinCE as with BREW or Palm.
The message/event mechanism is very explicit in BREW and
Palm development environments where the application is
expected to implement a message-handling loop to control
the basic execution flow.The provided application models and
environment—VC/MFC or VB in the case of WinCE and the
Java class library in case of J2ME—to a good extend hides the
core message loop from the developer in these platforms.

Memory: Memory is at a high premium in the case of J2ME
and BREW, whereas it is slightly less so for the larger Palm,
Symbian, and WinCE devices. For the C/C++ programmer,
the memory management on the Win CE is the same as that
for other Win32 environments. The BREW, Palm, and
Symbian platforms present similar but slightly different
memory management APIs.

Communication: This is one area where the Symbian
probably stands above all the rest. Having been designed
ground-up as a communication device platform; it provides
excellent integration into the telephony capabilities of the
device. Palm is close with improved telephony libraries in the
OS 5 and with a good net and object exchange library to its
credit. The J2ME specification doesn’t attempt to integrate
the telephony functionality into the phone based application
environment that it provides. The rest of the camp are still
refining their components for telephony.

Database and File System: Both WinCE and BREW
provides support for storage to be organized as flat-files or as
database records whereas Palm and J2ME organizes all data as
records of a database. Of course all these devices use some
part of the RAM as their data storage with support to expand
the available storage by use of add-in cards in devices like the
WinCE, Palm and Symbian.

User Interface Development: The Palm and Symbian
aresimilar in use of resource files to store and create the UI
layout. J2ME is probably the most restrictive in the list of UI
controls that’s provided. The auto layout functionality
provided by J2ME is however not a part of the specification
and hence the layout and behavior provided by one
implementation might differ from another.WinCE is quite
similar to development of dialog based applications for the
Win32 platform.

Media Support: All the platforms have some support for
multimedia, though J2ME and Palm are currently lagging
behind the rest. There is no support for media handling
directly in the J2ME specificationwhile Palm OS has
improved its support for multimedia in release 5 with support
for sampled sound. Win CE devices with their superior
processing power, memory and multi-threading and preemptive
multi-tasking is probably the platform of choice for
multimedia applications.

Some Conclusions: For the fresh wireless programmer,
J2ME presents the least learning curve—simple, but limiting.
For a well-integrated telephony, wireless data platform
Symbian and BREW are the platforms of choice, the larger
processing power requirements for the Symbian makes it a
more exclusive platform and hence BREW will probably be
the mass market choice for the present. Win CE with its
powerful lineage of Win32 platform is attractive to the large
population of Windows developers, but costs more. The
future will belong to the device platform that best integrates
wireless voice, data & multi-media support along with
flexible communication interfaces to device attachments.

Samal Chandran is the Senior Technical Lead
and heads a private Wireless SIG at Aztec
Software, Bangalore



Twitter
Share on LinkedIn
facebook