[Seaside] About SToR
ramon.leon at allresnet.com
Fri Jul 28 17:12:02 UTC 2006
> -----Original Message-----
> From: seaside-bounces at lists.squeakfoundation.org
> [mailto:seaside-bounces at lists.squeakfoundation.org] On Behalf
> Of Wilkes Joiner
> Sent: Friday, July 28, 2006 6:33 AM
> To: The Squeak Enterprise Aubergines Server - general discussion.
> Subject: Re: [Seaside] About SToR
> I've been doing some Rails work lately. ActiveRecord is
> really nice, and Migrations are fantastic. Porting
> ActiveRecord to squeak and providing browser support for it
> seems like a slam dunk to me. I wouldn't do a straight port
> but just borough the main concepts.
ActiveRecord is nothing more than a simplified object relational mapper,
Squeak already has two of those, Glorp and Tantalus, better to look at those
and see what would be needed to wrap it up into something automatic and easy
to use, than to reinvent the wheel. Tantalus especially, is very similar in
it's assumptions about the schema as ActiveRecord.
Secondly, this isn't "the" big problem that needs solved, Squeaks big
problem is its lack of native bindings to the big two enterprise databases,
SqlServer and Oracle. Currently these have to be accessed via ODBC which
doesn't scale because it blocks the VM due to its use of FFI. And blocking
the VM in a web app that's inherently multithreaded just isn't acceptable.
I think this is what prevents it from gaining wider acceptance, and will
continue to be it's Achilles heel. MySql and Postgres aren't really
options, as they aren't widely used in the enterprise, why Squeak has better
bindings for those is beyond me.
That leaves Squeak with very poor relational database support, which brings
us to object databases. Magma and Goods, both good solid ODB's from my
understanding, I use Goods personally, Magma's still under active
development and I feel safer with Goods, however, using an ODB isn't
particularly easy when one is accustomed to relational databases. Not being
able to just write a query and search a bunch of objects is a big hurdle,
you have to think things out ahead of time and create indexes by hand to get
any decent speed from the system, and there's really very little out there
to guide one in learning all this stuff, frankly it's a painful process, one
I'm still in the midst of figuring out myself as I bring Squeak and Seaside
into the office.
I've felt enough pain mapping objects into relational database that I've
also come to believe object databases are the way to go when dealing with
object oriented applications. Maybe things are more advanced in a more
enterprise Smalltalk like VisualWorks or Gemstone, I hope so, because the
state of the object databases in squeak at the moment seems quite alpha, and
still a bit too painful to be able to easily replace a relational database
for most apps.
I think if the community wants newcomers to stop wishing for ActiveRecord,
and relational support in general, there needs to be much more discussion on
this list about how to use object databases, how to do full text searching,
and how to index objects efficiently, because like it or not, most people
who approach Seaside, almost immediately, are going to start wondering about
persistence. Rails took off in part due to it's slick integration of
persistence into it's web framework. As cool as Seaside is, without a
reliable and simple means of persistence, few will find use for it.
More information about the Seaside