[cap-talk] Persistence and Versioning (this is how easy it really is)
John Carlson
john.carlson3 at sbcglobal.net
Fri Mar 14 01:36:58 EDT 2008
I think that when you bring up persistence, you need to start talking
about versioning in the same breath. What needs to be versioned in a
persistent capability system, what is backwards compatible and what
isn't? What is your experience? Why aren't we using Lisp for coding,
so that code can be somewhat automatically updated? All we need is
the list, the associative array, and primitives. How does one version
lists, associative arrays and primitives?
In Java I see PropertyChangeListener, PropertyChangeEvent,
ListDataListener, ListDataEvent. What about adding and deleting keys
from an associative array? I guess this can be handled with
PropertyChangeEvents (with null old or new values). So we basically
have everything we need to add versioning to everything in computer
science. This means undo/redo, macros, history, commit, rollback and
restore. I think all we need to add is the idea of checkpoints
(saves) and dates.
Now that we have a basis for versions, can we can start talking about
subjective computer science (disagreements between versions--how to
step by step convert from one point of view/API to another point of
view/API)? We all agree on lists, associative arrays and primitives,
right? How do we step by step convert a UNIX or Windows API to a
capability API? The X3D community has conversion utilities for X3D,
VRML, Collada, KML etc. Let's pick a programming language (say C) and
describe the steps to convert each system call to a capability system.
There are 219 manual pages for system calls for MacOSX 10.5. Lets
start analyzing them one by one.
John Carlson
More information about the cap-talk
mailing list