[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