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

goran at krampe.se goran at krampe.se
Wed Jan 3 08:26:14 UTC 2007


Todd Blanchard <tblanchard at mac.com> wrote:
> On Jan 2, 2007, at 1:36 PM, goran at krampe.se wrote:
> > Using the RDB as a sharing ground for applications is IMHO really,
> > really bad. Sure, it *works* kinda, but very fast you end up with
> > replicated SQL statements all over the place. Then someone says  
> > "stored
> > procedures" and hey... why not consider OBJECTS? There is probably a
> > reason why people are so worked up about Services these days. :)
> 
> So if it is objects instead of tables - how is this different?

Objects offer encapsulation and sharable behavior. Tables offer just
shared data.

> Uh, and the alternative would be what?  Take a typical company that  
> makes and sells stuff.
[SNIP of quick description]
> There are many cross cutting concerns.
 
[SNIP] 
> RDBMS systems have a couple nice properties - you can produce lots of  
> different views tailored to a viewpoint/area of responsibility.  They  
> guarantee data consistency in integrity.  Something I find lacking  
> from OO solutions.

I am not saying that I have a Grand Solution. I agree that an ODB is
focused on having a Real object model at the core instead of a bunch of
loosely interrelated tables that can be viewed in 1000 different ways. I
still believe the object model offers real value in the form of proper
behavior, better more natural model, reuse of business rules and so on.

But I agree that ODBs do not offer that "twist and turn"-ability, I just
often see that as an advantage instead of a disadvantage. :)

One project I was involved in was interesting - we built a proper, good
object model in GemStone for quite a complicated domain. Then we added
an "export tool" on top of it which could produce tabular data from it -
you picked what aspects you wanted, calculated or not - and got it out
as a batch job. Then you could analyze that to your heart's content in
an OLAP tool on the side.

It would be interesting to know if there are any ODBs or ORDBs that
offer that ability - but online instead of offline. Most of the use
cases you mentioned was about getting information (and not writing).

regards, Göran



More information about the Squeak-dev mailing list