Design Issue 1?Constrained Computational Capability

A desktop PC is powered by an unlimited supply of electricity, and so can afford to run at high speed and dissipate large amounts of heat. A Palm device, on the other hand, is a portable device with electricity supplied by two AAA 1.5 V batteries. The designers of the Palm device chose a relatively low-powered CPU to run the Palm in order to conserve battery life and therefore to reduce the frequency with which the batteries needed to be replaced or recharged. Although this was the right decision for a small portable device, it means that software written for the Palm must be developed with a keen eye toward the amount of processing the CPU is being asked to perform.

The other important factor is that tasks performed on PDAs must be done very quickly. The PDA user wants to perform simple tasks that are completed fairly quickly; the user does not want to wait for the device to finish lengthy computation tasks. Palm applications are (and must be) very responsive?at least as responsive as a desktop PC performing an average task. If we agreed that a desktop PC is at least 10 times more powerful than a PDA, then to maintain the same level of responsiveness, the PDA application needs to limit itself to tasks that are 10 times simpler.

Inasmuch as we are using the same language that we have used on desktop applications with great effect, it is tempting to just develop applications in the same way. In our desktop applications we have taken advantage of the cheap power of modern PCs and employed vast and rich class libraries to produce simple and elegant applications. We have used XML parsers for reading configuration files and for detokenizing messages passed as XML documents; motivated by the value of a human-readable message format, we are unbothered by the negligible power taken by our desktop application to do so.

In developing applications in Java on PDAs, it is important to remember that the desktop approach to software design cannot be applied without consideration of the platform differences, and in particular the availability of resources. A design goal for any application on PDAs is to off-load as much work as possible to another computer, which may be the desktop or server.