Palm Pilots: Could Do Better
I first played with a small computer in an EE class twenty years ago -- a tiny little SBC (Single Board Computer) with a 6801 on it. My partners and I programmed it with the help of a Unix machine which converted assembler into hex; we had to type the hex into the board ourselves. It was total fun, and I've been leaning towards little computers ever since.
My current small computer is a little Palm Tungsten E. By "little" I mean that it's more powerful than the VAX that me and ten other people used to program on professionally. There are more languages for the Palm, and it's tons easier to program -- except that Palm doesn't really want me to program it. Instead, there are lots of languages that individual programmers have made, gotten to partly work, and then abandoned, and some giaganto-thing to program it on a real machine and then download -- but wow! What sea of mediocrity, and me stuck here without a sextant. Or map.
Looking at the Palm website, they have a ton of documents -- but half are about the shiny new way of programming for Palm (but which doesn't work on mine because it's only for the 'new' Palm OS that it's pretty clear isn't ever going to be released), and half are for really old Palms (which aren't super useful for me).
What's missing is simplicity. My time for poking at this is measured in the hours and half hours -- a little more if I wake up extra early, or if the kids sleep late. If, in that hour I can't figure out what to download, have the download just work and just install (I looked at one Palm program that, for "convenience" divided itself into fifty pieces so you could add this feature, or not that feature, or something to support really old Palm, or for oddball ones. I know I certainly wasn't about to try to figure out what was what, and didn't even extract from the zip file), and then write a simple "hello world" program --well then, it's too late.
Something that's done well, on the other hand is 'ant' -- a build system that works on Window (and probably others). Lots of decent features, reasonable documentation, and when something fails, I always know it's my fault :-)