At 02:21 AM 3/2/2004, you wrote:
It's not clear why the changes could not be more evolutionary. It's even
less clear the advantages of the overhaul. It is clear that the Palm is
waffling about their own OS(s). Not a good message to developers who put up
a lot over the years and just find the original processor choice was a
mistake in OS 5 and not the choice of API is a mirage too in OS 6.

The changes are evolutionary. OS 5 introduced ARM support in the "back-end" of the OS, only letting you use ARM by jumping through a big hoop called PACE Native Objects. OS 6 finally lets you write ARM native applications. Since they needed a new API and set of tools for this, PalmSource finally had the chance to clean up a lot of API decisions that had constrained the platform and confused developers. They also moved to a more modern windowing model that's needed to support multitasking.


Remember, change is a constant. The original choice of the 68K for the original Pilot 1000/500 was a good choice when it was made in the mid-1990's. The processor was cheaper, used less power, and had good tools to support it. It enabled a whole class of devices; remember the big price difference between a Pilot 5000 and a Newton Messagepad -- that was in part due to CPU and memory costs.

Moore's law means that you have to revisit some decisions, and it was clear by 2000 that ARM-based CPUs made sense going forward, both because of their improving performance and power profiles, and because they were becoming available from a lot of different suppliers. It's taken about five years for Palm OS to move from being a tiny, 68K-based OS designed to run four PIM applications to become a reasonably sized embedded OS with a variety of services.

Think of this change as being similar to Microsoft going from Win16 (Windows 1.0 through 3.1) to Win32 (Windows 95, NT, onward). The new versions continued to run old 16-bit apps, but you needed to move to the new Win32 API and rebuild in order to use the new features and to make your apps more stable.

The API is mostly the same between OS versions. Some minor things change -- you don't have card numbers anymore, you use different typedefs. Some major things change -- you need to support update-based windows, you can't hack into system internals. However, I'd urge you to read just the first few chapters of the "Porting Apps to Cobalt" PDF that's in the Cobalt docs. It will give you a better feel for just how much effort went into making this transition work and why PalmSource made the changes it did.

-- Ben Combee, senior DTS engineer, PalmSource, Inc.
   Read "Combee on Palm OS" at http://palmos.combee.net/



--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to