[Seaside] Join forces

Ramon Leon ramon.leon at allresnet.com
Tue Aug 29 21:45:16 UTC 2006

> Honestly, I never had a selector in any of my business 
> applications called #description before I implemented 
> Magritte. I still find it a nice selector name for what it 
> does in my framework, though I see that there might be better 
> choices. The problem is however, no matter how crazy you name 
> your methods, there is always an environment that conflicts, 
> unless you have something like class-boxes or selector namespaces.

I'm guessing because you aren't American, here, #description is very common,
I can hardly think of anything more common other than #name.

> Magritte does not break if you override #description or 
> #asComponent, you just cannot use these objects together with 
> Magritte as simple as the other ones. So this is not really a problem.

Well, not being able to use domain objects with Magritte, I consider a big
problem.  Easily bypassed by providing an override to asComponent to build
descriptions differently.

> The problem I got in Pier, was because I used subclasses of 
> WAComponent as model objects with their own descriptions, etc.
> Probably only very few people actually do something like 
> this. This is the only case the thing breaks with the latest 
> Seaside and it can be fixed easily.

Yes, I liked this, WAComponents should be able to be models, what good is a
widget if it can't have it's settings configured.

> So what are your suggestions for those two selector names for 
> the next version of Magritte?
> Cheers,
> Lukas

Honestly, I don't disagree that description was a good name for what
Magritte is doing, it's just that it's too common, collisions are going to
happen often.  #description is a collection, at least it responds to the
protocol, maybe simply pluralizing the selector, since it is a collection of
description objects.

anObject descriptions

While #description is common, I don't recall ever using #descriptions on a
domain object.

Or, hmm, thinking out loud...

anObject descriptor
anObject definition
anObject representation
anObject specification	
anObject type

All of these seem rather uncommon to me, at least as "simple" fields on
common domain objects and still kind of jive with what Magritte is doing.
#type is even in other languages what #class is in Smalltalk, would have
good synergy with #class, which is what you were shooting for.

More information about the Seaside mailing list