Make sure you take your Java to go

Java Applications Are Taking the Pocket PC by Storm

Diagram of Java Architecture (click on small graphic at right)

Until recently, Pocket PC developers were basically limited to C++ and Visual Basic-based development environments to build applications for Windows CE handheld devices. However, Sun Microsystems' Java, a programming language which has become a standard for Internet and enterprise application development, is rapidly emerging as a powerful alternative. Java can be used to develop feature-rich mobile and wireless applications that take advantage of the powerful processors, memory, and graphical capabilities of Windows CE devices.

Overview of Java

Since Java was launched in early 1995, it has gained wide-scale adoption as a powerful development tool. Market research firm

International Data Corporation (IDC) estimates that there are currently 2.5 million Java developers and expects that this number will grow to 4 million by 2003. This large development community has helped create a wide universe of consumer- and enterprise-based Java applications. As an example, more than 5.6 million Web pages are Java enabled, including seven of the top 10 sites as ranked by Jupiter Media Metrix.

While Java has gained wide scale adoption for building server- and PC-based applications, the introduction of Java 2 Micro Edition (J2ME) has propelled Java to the forefront as a viable alternative for creating applications on mobile devices. J2ME provides a robust core version of standard edition Java tailored to mobile device needs, yet it retains the platform-independent functionality of its parent language. Because Java applications are executed by software called a Java Virtual Machine versus being written for a specific type of hardware or operating system, Java programs can be run across a range of different operating systems and hardware as long as a virtual machine is available.

This Write-Once, Run Anywhere concept is one of the core advantages of Java over other development languages. Developers can write an application that can run across a range of different Java-enabled devices. This cross-platform functionality becomes a powerful incentive for developers to write in Java because they can reach a wide community of potential users. As a result, mobile device manufacturers like Hewlett-Packard, Compaq, Palm, Research in Motion, Motorola, and Nokia have already announced support for Java for their new generations of PDAs and phones.

Application portability is just one reason that Java has attracted more than 2.5 million developers. Additionally, because Java was designed from the ground up as an object-oriented language, many developers believe that it is easier and faster to develop in Java than in other languages like C++ and Visual Basic. Furthermore, Java enables mobile application developers to create end-user applications with graphics, animation and color. For mobile users who have been underwhelmed in using Wireless Access Protocol (WAP)-based programs, Java applications can provide a much richer experience with graphics and animation.

As a result of these advantages, Java has emerged as an important development environment for mobile and wireless applications. In a recent survey of developers conducted by market-research firm Evans Group, 30 percent of respondents said they plan to use Java for wireless applications development versus 25 percent for Palm and 22 percent for Windows CE.

Notwithstanding the many advantages of Java, some issues still exist. Although J2ME goes a long way to reduce the memory requirements of mobile Java applications, the Java runtime environment still requires several megabytes for basic applications. Furthermore, because the Java Virtual Machine effectively compiles the Java code each time a program is executed, mobile Java applications often run slower than applications written directly for a device's operating system. (However, as mobile devices, particularly Windows CE-based ones, quickly add more memory and ramp up processing power, this is going to be less of an issue.) Although Java is rapidly gaining momentum as the development language of choice across mobile devices, there are still a relatively small, but rapidly growing number of Java mobile applications available.

Java and Pocket PC Devices