Wow, it's been a long day.
This has definitely been my best coding day on Divmod yet this month. Into
the wee hours of the morning, Allen and I tore through the rest of the tasks
which I had estimated it would take the rest of the release to complete.
We also had a fun discussion about the successor to twisted.world, CARCOSA
(backronymed to "Concurrent, Atomic, Reliable Object Storage Architecture").
When we can refactor Quotient's store into a bit more general of a
structure, and also take advantage of what must be a significant speed boost
in using fixed-length rather than variable records in bsddb, we should be
able to implement everything that we had hoped for in twisted.world and
possibly more.
We're probably going to need to add a twisted.python.schema module, which
should be shared between Formless, CARCOSA and PB. While CARCOSA is dealing
about storage and Formless/PB is dealing with interactivity, you should be
able to express type constraints the same way.
An object which implements a TypedInterface and also specifies __schema__
itself will be able to be published on the web, transactionally stored in a
database, and also published over a custom, interactive protocol, all with
no additional work besides what the average Java programmer has to endure
when defining a class. Plus, you can develop your objects unencumbered by
the schema and only nail them down once you've developed an understanding of
their requirements through experimentation.