[Seaside] Rolling with Ruby on Rails vs. Seaside

Avi Bryant avi.bryant at gmail.com
Fri Jan 28 13:06:14 CET 2005


On Thu, 27 Jan 2005 11:29:28 -0500, Benjamin Pollack
<benjamin.pollack at gmail.com> wrote:

> If you are trying to
> write an application to interface with existing relational data,
> though, or if you want your database to be accessible from
> command-line, web, and GUI components, an RDBMS may be your only
> solution. That gives you the choice of either coding the SQL manually
> or using GLORP.

The other option to point out here is ROE, which is not an O/R mapper
at all, but rather a way to make it more natural to interact with
relational data on its own terms from within Smalltalk.  But that's a
very different feel from using ActiveRecord.

> GLORP is more powerful than ActiveRecord; I'm not
> challenging that. But it's also much harder to use, getting things
> running can be surprisingly complicated, and for many things,
> ActiveRecord is sufficient. GLORP also supports essentially only one
> database on Squeak (PostgreSQL), whereas ActiveRecord supports all of
> the major ones at this point. For quite a few projects, that's a
> showstopper, and it happens before we even really get to the
> web-framework level.

Having sunk enough time into to O/R trap, I'm in no hurry to do this
myself, but: it sounds like you think having an ActiveRecord
equivalent for Squeak would be a Good Thing, so how hard would it be
to port?  Could it maybe even just be a simple wrapper around GLORP
that makes more choices for you, presenting a more ActiveRecord-like
API?

> The other thing that is appealing about Rails for most of the
> developers I've talked to is the speed of development for simple web
> applications that provide little more than CRUD. If all you want is a
> quick GUI on a database, Rails goes extremely quickly, and the
> scaffolding ends up being mostly sufficient. Seaside goes much more
> slowly for this part of development. A lot of web apps these days are
> just CRUD, and I think that many developers find Rails a lot easier
> for that.

What, in your opinion, is the basic Rails-like scaffolding that would
be needed to give the same feeling of rapid-start development on
Seaside?  Based on what little I know of Rails, it seems like the main
two things it provides here are:

- A basic ItemList component that takes a collection of objects of the
same type and shows them in a table with Edit and Delete links, and an
Add link
- A basic ItemEditor component that gets used for the Add and Edit
links above, and shows a form automatically built up from metadata
about the properties of the object

Having written that out, it sounds almost exactly like what Mewa does
already - so what are the key differences?  Is it just that the
metadata is derived from looking at the database rather than specified
in code?  Or is there some additional simplification needed?

Forgive all of my questions - I haven't used Rails, or talked much to
those who have, so I'm just trying to gather information about what
makes the experience a good one.  I think it's an instance of the
"provide good defaults and let them be overridden" rule, which I
definitely subscribe to, and it seems like there's a whole layer of
defaults here that people want that Seaside isn't providing; I'm
curious to find out just how "default" they could or should be.

Avi


More information about the Seaside mailing list