[TransWarp] Addition and Recipe Order? (was Re: Components Stable?)
John D.Heintz
jheintz at isogen.com
Wed Jun 20 09:50:13 EDT 2001
> My counter-argument to that is that the Python base class order reflects
> implementation of a *search path*, which is not *assembly order*, and that
I find this description very motivating. Given proper documentation I can
live with the current component construction semantics and mechanics even
though they differ from a Python expectation.
John
On Wednesday 20 June 2001 06:43, Phillip J. Eby wrote:
> At 06:53 PM 6/19/01 -0700, ender wrote:
> >On Tuesday 19 June 2001 04:41, Phillip J. Eby wrote:
> >>>At 10:31 AM 6/19/01 +0800, Dirksen Lau wrote:
> >>>> I'm developing a zope product when I discover TransWarp. I'd like to
> >>>> see
> >>>
> >>>some
> >>>
> >>>> examples how to develop zope product with TransWarp. Is there any of
> >>>> that in Zope's download page?
> >>>
> >>>Sorry, no. TransWarp is in a very early stage of development right now
> >>> - it's only been last week that I began use of it in a "real" project,
> >>> and only for its component-building tools, not any of the advanced
> >>> parts.
> >
> >is the components building stuff stable then?, i'd like to start using it
> > in a project, but have been unsure about stability while watching the cvs
> > checkins.
>
> Depends on your definition of stable. :) I'd say this is alpha at the
> moment. The TW component work I've been doing is in a not-very-critical
> reporting feature of a project, and that feature went into a beta phase
> yesterday.
>
> Probability of bugs in the TW.Components family of modules is fairly low in
> general right now, and those things that have unit tests are pretty darn
> stable. The stuff that isn't covered by unit tests yet may be buggy or
> subject to interface changes. There's also one major potential interface
> change that could take place: ordering of Recipes and adding specifications
> together.
>
> Ty has argued that the ordering of Recipe objects and of aspect addition is
> backwards, because it doesn't match Python base class order. My view is
> that base class order is irrelevant, because component construction is
> nothing like inheritance in how it works. Adding together aspects or
> templates is a process of overlaying things, so to me:
>
> A + B
>
> and
>
> Recipe(A,B)
>
> mean "put B on top of A". Ty's view is that if you want to put B on top of
> A, you should say B + A or Recipe(B,A), the way Python base classes work.
>
> Thing is, TransWarp actually works with the sequence A,B to put B on top of
> A, because builders *do* in fact build up on top of one another. So if I
> decide to use Python ordering, I'll have to internally *reverse* the
> contents of recipes in order to use them. This is probably very minor as a
> performance issue, but it just seems "wrong" to me because it hides the
> sequencing of component build operations - which is something you *may need
> to know about* when composing complex specification objects whose behavior
> depends on what you overlay them on. Ty's counter-argument is that this is
> a logical sequence, not a physical one, and that left-to-right or
> right-to-left ordering is separate from the *meaning* of the sequence. In
> other words, Python base classes overlay in the opposite order, and this is
> perfectly understandable. :)
>
> My counter-argument to that is that the Python base class order reflects
> implementation of a *search path*, which is not *assembly order*, and that
> we should *reinforce* the distinction between the two. Python classes
> simply *refer* to their bases and use them for attribute lookups.
> TransWarp specifications are used to implement a component and then
> discarded; there is no search order involved. To me, using the same
> ordering diminishes the vast difference between these behaviors - an
> important distinction that developers need to be aware of.
>
> Ty's counter to this is that similarity will make it easier for developers
> to learn, and having the order "backwards" from Python will result in
> errors because people will naturally want to put things in base class order
> rather than addition order.
>
> So... at this point, we are obviously deadlocked on this issue - probably
> the first time we've *ever* been deadlocked on a design decision. At this
> point, we'd like to hear from some Python developers *other* than ourselves
> for an opinion. We do need to make this decision final soon, however,
> because it represents a *major* interface and documentation change if we
> switch to base-class oriented ordering.
>
> Comments from the list are invited and encouraged!
>
>
> _______________________________________________
> TransWarp mailing list
> TransWarp at eby-sarna.com
> http://www.eby-sarna.com/mailman/listinfo/transwarp
--
. . . . . . . . . . . . . . . . . . . . . . . .
John D. Heintz | Senior Engineer
1016 La Posada Dr. | Suite 240 | Austin TX 78752
T 512.633.1198 | jheintz at isogen.com
w w w . d a t a c h a n n e l . c o m
More information about the PEAK
mailing list