Would you feel differently if the annotation and attribute had different
names that didn't imply "hint to layer above me", but made it clear that
the annotation belonged to the view layer?
class GenericViewAnnotations(schema.Annotation):
"""
Annotate the kind class with default detail view mapping,
used by the generic branch point.
"""
schema.kindInfo(annotates=schema.Kind)
defaultDetailView = schema.One(Block.Block)
or
class ScaryViewAnnotations(schema.Annotation):
"""
Annotate the kind class with a "scary" detail view mapping.
Some custom branch point will pick this view on halloween.
"""
schema.kindInfo(annotates=schema.Kind)
scaryDetailView = schema.One(Block.Block)
Can't we still think of the view code as annotating the model code and
owning that annotation, thereby not polluting the layers? Some view
parcel could provide only the annotation to some existing model, for
example.
I'm not necessarily arguing we should do this (especially not in 0.6),
but it doesn't seem fundamentally unclean to me.
Cheers,
Katie
Alec Flett wrote:
I personally I don't see annotations as an excuse to start blurring
different layers of the application, but I obviously think it has its
place. In the case of collections colors I view that as a piece of code
saying "I need to remember some of my own proprietary information about
this object" whereas I think the ViewableKind thing is more the other
way around - a kind saying "I'll provide a hint to the layer above me,
in case it needs it"
So annotating 'Kind' would make more sense if the detail view or trunk
parent block were attaching information to the kind like "Oh, next time
I display this kind, I'll need this information.." - but if it is used
that way, where does it get that information to begin with?
If anything its like the way 'color' is still an attribute of
AbstractCollection - its relying on some base type to provide an
attribute, and hoping there is some specialized use of the base case
that will make use of the attribute.
So I think it comes down to semantic ownership. Annotation is, for me,
for allowing the owner of some data to attach that data to something
else that it doesn't own. Like if you came to a party and I asked you to
wear a name tag calling you "Phillip with two L's" - that name has
little or no meaning for you, but I can use it to distinguish you from
related people I know like "Philippe with Two P's and an E"
I feel like the ViewableKind annotation is more like if you made and
wore your own name tag with a pronunciation guide in Cyrillic, assuming
that anyone who needs to pronounce your name will know Cyrillic.
Alec
My question is entirely independent of the discussion at hand; I want
to learn more about how people perceive the annotations concept,
whether they perceive it as good or bad. The fact that you seem to
see it as both simultaneously makes you an especially good person for
me to learn something interesting from. :)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev