An article from O’Reilly talks about some open source PDA projects. It does bring up some pretty cool points which I hadn’t previously given all that much thought to, such as being able to move binaries around to different systems. That is a pretty kick ass point if you’re trying to create some open source tools. I’ve been working on a very early stage project to get together some open source tools for Palm devices. But that’s because I use a Palm device for day to day stuff. At some point I expect Linux devices to be perfect for day to day work, but still I prefer Palm devices for the PIM functions. I have tried out a few of the earlier Linux based PDAs, and I’ll probably end up with a Zarus at some point soon. For now however I have been fooling around with Palm apps. And coming back to do some Palm programming after having been away for almost 4 years is a pretty revealing. The Palm platform has grown quite a bit, as one would expect it to as it matured. But I don’t think it has scaled very well. There are a lot of platform parameters now (hardware that may or may not be present, screen resolutions, color capabilities, networking, operating system support, and so on). It has become a lot more like programming for any other operating system. It used to have an elegant simplicity, but in order to take advantage of these capabilities programs can no longer be simple. There is a lot that a programmer might have to take into consideration to ensure that their application works smoothly on all platforms, or in some cases to make sure that it works at all.

As the Palm platform moves towards more and more complexity it leaves room for complex systems to move in and grab some of its market. If programming for even the “simple” Palm interface means potentially having to deal with multiple screen resolutions, formats, and input methods why not just go all the way and program for an environment which has had these capabilities from the beginning? Especially if the system shares interfaces with a system that the programmer might already be familiar with. It makes the process of learning a new system much more bearable. Palm used to be the darling of the PDA world because of its simple yet powerful design. It did few things, but what it did it did well. What it could be extended to do was relatively limited, but actually extending it was also simple. This is not so any more. Could careful design of the system extensions have left them with a better system? I have no idea. Maybe they have done perfectly, and their system could be no simpler while retaining the functionality it has. That doesn’t change the fact that I can get a very capable Linux based PDA with more capabilities and which matches my development desires better. Still, I have a Palm now, and I’m a hacker, so I’ll program for it. But I’m keeping my eye out for a nice deal on one of the new Zarus models.