So, I'd like to talk a bit about OS data structures.

The point in releasing the details of OS data structures was to give
developers a better idea of what was going on in Palm OS.  That should
hopefullly translate in developers spending less time scratching their
heads and more time making interesting apps.  If the a developer needs to
use "inside" knowledge of Palm OS to work past problems or deliver
breakthrough functionality, then that could be a worthwhile tradeoff for
the developer to make.  Those were some of the goals.

Palm had the option of not providing details.  It means developers would
spend more time debugging.  I don't think that's how one builds a cool
platform.

So what has happened is that there is, and always will be, a set of
developers whose apps rely on "inside" knowledge.  This is a problem for
the future of Palm OS and it's users.  Users want new features and they
want their old software to work. What to do?

I think the general strategy needs to be to reduce the set of apps which
use "inside" knowledge.  You can't eliminate them, nor should anyone.

So the first idea is to remove the "accidental" developers.  Palm will need
to move more data structures into Prv.h files.  It means more files, but
it's clearer to new folks who don't recognize software abstractions or our
goals really well.

It might be good to have a compile define to eliminate the inclusion of
Prv.h files.  This would enable finding opacity violations at compile time.
We could make this the default, but then you couldn't inspect structures
while debugging.  That's a pain.

We could enforce the hiding of Palm's structures from Poser too. This would
allow both developers and users to see when a program knows too much about
Palm OS.  This is good for users so they can tell if a program that they're
about to spend good money on will continue to work in the future.

The next set of developers who fiddle with Palm OS structures do so because
Palm OS doesn't have a complete enough set of API calls.  Some things we
can't change until the formats of the structures can change.  But still,
I'd like to see your comments on what data structure parts are you directly
accessing, and why.  Especially the UI elements.  So send your email.

The last set of developers are those inventing and stretching Palm OS into
the future.  To a large extent, empowering you is why Palm has this
problem.  So go rummage through our header files.  And be sure to look at
our OS source files.  And go do what you guys do best!


-Roger Flores



Reply via email to