Technical Comparison Of Windows CE vs. PalmOS?
caprio asks: "I work for a software company in Illinois. We want to port our current application, which is a EMS Data Collection tool, to the PDA scene. It is a Visual Basic program (COM, ADO, the works..) It would involve collecting data at the scene of the accident, then uploading it to the server back at the station. A complete re-write is not out of the question. So my question is this, can anyone give me a good, technical comparison between Windows CE and the PalmOS? We are leaning towards Windows CE becasue the machines are beefer. But I also hear that cable connection is better on the Palm. Anyone with some tips or suggestions?"
Well, Windows CE is more like a full OS, complete with almost everything you can find in the deskstop Windows : installer/desintaller, TCP-IP networking with dial-up wizard, bunch of dll's, desktop wallpaper or a lightweight DirectX. PalmOS is a pure handheld OS made for handhelds and handhelds only : there's the bare minimum of services and code.
Both OS have merits, but for a developper Windows CE is clearly better, because it uses a subset of the Win32 API and have most services you expect to find in an regular OS. Also, Pocket PC PDAs have larger screens (240x320 pixels and 12 or 16 bits per pixel) while Palm devices have a tiny one (160x160 in gray scale or 256 color). PocketPC have MUCH beefier CPUs, sound, easy connectivity through Ethernet or Modem cards, mass-storage availability (Flash cards or Microdrive, etc...).
Another BIG advantage of Windows CE : Microsoft is giving away the full SDK AND Visual C++ AND Visual Basic for Windows CE (not just the add-on, the full complete apps with cross-compiler and all !). If your app already exists as a Visual Basic program, then it will mike porting easier than rewriting from scratch for PalmOS, un C and with a totally different API.
Overall Palm devices are nice calender/todo/agenda/etc. but they just don't cut it if you want desktop functionnalities.
WinCE:
:-)
+larger screens, better resolution, more fields per screen
+relative code portability from the desktop
-color screens almost unreadable in daylight, great at night
-code portability might depend on OS features used
-short battery life, which can be a problem depending on usage model
-expensive devices, a factor in a harsh environment
Palm:
+very readable screen in daylight, usable at night
+extremely long battery life, enabling all sorts of usage models
+cheap devices, almost disposable
-OS harder to program and more limitations than WinCE (except if you choose VC++ on WinCE, then it's a bitch regardless
-smaller screen, fewer fields per screen
-Graffiti might make some people balk
All in all, I'm leaning towards Palm, because of the very readable screen, the long battery life, and the cheapness of the devices. However, you should evaluate WinCE and see how much of your legacy code would REALLY be portable; if a substantial amount needs a rewrite (e.g. because of GUI issues), write from scratch and go with Palm. If you can mostly port verbatim, go with WinCE.
On Palm you can use Satellite Forms to create very VB-ish apps, complete with event handler scripts etc. Check it out, for data acqusition it makes app development almost trivial, and all your data automatically ends up in database tables on the desktop. You could also use the Symbol devices with the barcode reader if you have that kind of need.
That's the rumor, anyway. Instead, MS is working on a stripped-down version of it's Millenium Edition OS, to be called mini-ME.
- You can make your Palm application quite tamperproof by burning the app into flash ROM and disabling the software installation conduits.
- PalmOS is essentially a clone of MacOS anno 1990. People who programmed the Apple Mac back in the early nineties will understand the PalmOS very quickly.
- Sybase has a product named UltraLite (part of SQL Anywhere Studio), which is a very small embedded SQL server for PDAs. You can replicate to/from any ODBC-compliant master data source over several different protocols. UltraLite also supports WinCE and several other platforms. I've used UL on Palm for some months now and it does have some bugs, but it will probably be sufficiently robust by next summer.
--Bud