Chris De Herrera's Windows CE Website

Discuss.Pocket PC FAQ Forum

Add Pocket PC FAQ to your Favorites
RSS    RSS Feeds
Wiki    Lost?
Custom Search
Subscribe    Print
Table of Contents
Mobile Format

PDA Gold


Pocket PC Magazine Best Site

Website Awards
Website Updates

By Chris De Herrera 
Copyright 1998-2007
 All Rights Reserved
A member of the Talksites Family of Websites

Windows and Windows CE are trademarks of Microsoft
and are used
under license from owner.
CEWindows.NET is not
associated with Microsoft 

All Trademarks are owned
by their respective companies.

Rebuttal - Head to Head: Palm's OS vs Pocket PC
By Thomas GOIRAND, Copyright 2002
Revised 4/5/2002

Shop unique and cheap iPhone cases on

Here is an opposing viewpoint regarding the commentary I wrote to Head to Head: Palm's OS vs Pocket PC.  These comments are presented here in the author's own words.

Hi !

I've just read your paper at the following address :

As long as I am a developer, and that I've worked a lot (2 years) with both PalmOS and Windows CE 3.0, I can tell you that what you've wrote is not clear for readers, and that you didn't point at important features of both OS. If you don't mind, I'll give you my developer point of view, and you can put it online if you want.

The first limitation of PalmOS that you completely forget, is the RAM limitation. Under PalmOS, you are REALLY very limited with the amount of memory you can use. - 1st, the stack is limited to 4 KB by application, which means that you really have to take care when you use recursively. - 2nd, the amount of RAM that an app can use depend on the amount of RAM that is free. For a 8 MB palm, with no APP or database stored (eg a stock Palm for example), you can use up to something like 350 Ko of RAM at a time. On the worst case, when you have less than 2 MB of RAM left, and when the TCP/IP stack is open (which take 32 Ko on the app heap), only 32 Ko of RAM is available !!! Yes, I'm not mistaking, and this is all written in PalmOS documentation (but a bit hidden, I agree : you have to find out the place for that documentation, and it took me something like 6 month to have the correct paper). - 3rd, a record database cannot exceed 64 Ko, and not more than 64K record can be stored in a database. Moreover, the more record you have, the more the access is slow, especially when you use more that 2000 records in a db.

When all theses limitations are very annoying for programmers, this is very cool for users. Than can be sure than a given app wont take a lot of memory, and that with only 512 Ko left on the device, it will run correctly. Personally, I hate such limitation, because in some cases, you can't do without allocating a lot of memory (most of the time, you have to temporarily store information in databases, which is slower).

You tell, "This allows systems to be designed with as little as 512k of ram and 1 mb" I disagree with that ! You won't be able to run anything with that amount of memory under WinCE, because this is Windows, and it uses a lot of memory for doing things, like GDI (drawing functions).

Hopefully, this is the only week point of PalmOS. Everything except this is better under PalmOS than on Windows CE. Even with a slow processor, PalmOS applications run a lot faster than the Windows CE ones, simply because the OS is faster. In fact, Windows CE suffer of Win32 partial compatibility, which makes the OS a lot more complicated than PalmOS.

For example, using the function CEGetRecordProps(), which query one field on a WinCE database, is very very slow (more than 20/30 ms on a 100 MHz Cassiopeia). If you compare that to the PalmOS equivalent (eg DmQueryRecord()), PalmOS function is very fast (even if it is not as fast as I thought it could).

Another example where PalmOS is better : writing GUI application. When, on Palm, you just have to create a resource file, link it with your program, and then just launch, you have to handle lots of problems under WinCE, like having only one window callback for the entire application, or having to understand and use MFC controls which are very complicated to use. On many many topics, programming under PalmOS is a lot more easier.

On your paper, you tell about the "modularity" of WinCE. This is only for device makers, not for customers. You have to tell it more clearly.

When you do PalmOS programming, you have lots of choices on the tools. One solution is to use codewarrior for PalmOS, which is a very good product. Another, is to use GCC, either under Windows using Cygwin, or under Linux. You can even work with a mac ! Both environment runs using Pose (PalmOS Emulator), which is an open-source program that you can use to debug. It is EXACTLY the same as the device, as long as it reproduce the hardware. You can even change the rom version if you need to test under specials devices like visor for example. Moreover, the PalmOS documentation is smaller, but complete, simple to use, and very clear. In few days, you can learn enough to make a simple application, which is not that easy under WinCE (except, of course, if you know well Windows32).

Regarding applications, there is a lot more cool things under PalmOS. A friend of mine has more than a CD of PalmOS shareware and commercial products. Some give you the ability to edit Microsoft word, or excel documents, read mail, sms, chatting on IRC, etc... and most of the time even better than the WinCE stock apps... Compare to that, there is nearly no cool stuff under WinCE. And you know why ? Because the PalmOS developer kit is a lot cooler than the WinCE one. eMbedded Tools for Visual is one of the worst dev kit I've ever used. First, the emulator has really a lot of bugs. It does not reproduce an hardware, but it is simply a WinCE to Win32 wrapper, which means that when you call a WinCE function, the corresponding Win32 (eg the computer you are running the emulator on) is called. This is annoying as long as those does not respond exactly the same way as on the device. In less words : PalmOS is cooler than WinCE for apps.

Considering the design, a Palm is easier and faster to use. Personally, I HATE the start menu, which is not at all useful on a handheld device. The PalmOS launcher is easier and better, especially if you consider that there are something like a dozen of alternative app launcher (I could tell about MegaLauncher2 for example...).

One thing I hate on PalmOS : there is no real filesystem. We are all used to standardized filesystem with subdirectories, and PalmOS does not have that at all. Instead of this, you have to use "databases" for storing everything. This is good because you don't have to worry if you file where saved, but this is not at the same time, because for example, you can not store one of your favorite PC file on your Palm device.

Finally, considering ActiveSync vs HotSync. Well... once again, Microsoft did a huge thing, hard to understand, and not very cool to use. HostSync is both easier to use for end users, and easier to code. I wont tell more about this, as long as I didn't do it myself (my colleagues did).

A thing I would like to ask you : what do you expect from a handheld device as a user ? Personally :
- I expect that it RUNs, and with most WinCE devices, you cannot use it more than one day without recharging.
- I don't expect it to read MP3, because 16 MB is simply not enough for 3 songs. For that, I use my MP3 cd-player, which can give me more than 14 hours of mp3 with two simple AA batteries.
- I don't need to have my PC software, because the screen is too small and there is no keyboard. So a Word application is useless, a reader is enough for example.
- I don't want to pay 1000 $ for a handheld device, otherwise I just grab a laptop which does a lot more

Best regards,


mail: [email protected]

Return to Chris De Herrera's Windows CE Website