relational for what? [was: Design Principles Behind Smalltalk, Revisited]

James Foster Smalltalk at
Tue Jan 2 16:51:04 UTC 2007

> -----Original Message-----
> From: squeak-dev-bounces at [mailto:squeak-dev-
> bounces at] On Behalf Of Todd Blanchard
> Sent: Tuesday, January 02, 2007 7:17 AM
> To: The general-purpose Squeak developers list
> Subject: Re: relational for what? [was: Design Principles Behind
> Smalltalk,Revisited]
> Funny, I just blogged about this.


As a long-time user of Object Databases (and now a vendor's employee) I
found your comments interesting. A few responses with regard to
- Object accesses do not need to be done within a transaction.
- Locking is at the object (not page) level (and can be optimistic or
- Classes are available that allow things like a queue to have multiple
producers and a single consumer without conflicts.
- A number of classes have automatic retry built in.
- GemBuilder provides client-side in-memory user-level caching.
- Schema migration is very flexible. You can have multiple versions of a
class, each of which may have live instances. The database does not have to
be off-line to update the schema.
- Most image-level bug fixes can be applied with the system in production.
- Users can be assigned to groups and objects can be assigned security based
on owner/group/world. 
- Garbage collection is quite sophisticated and is not adversely impacted by
schema changes.


More information about the Squeak-dev mailing list