> The "=item" line introduces the "external" flag, which means the echo()
> method is old sk00l Perl. That is, it takes $self and plain parameters
> instead of $self and a message.
But the echo() function defined previously only explects plain parameters.

So maybe : "external" for functions and "external method" for methods ?

> The "local" flag specifies that the method is a local call rather than a
> message handler.

Also, local is probably the wrong keyword to use.  How about "inline" or
something equiv?

> Namespaces only pertain to static components. Dynamic ones are anonymous
> and identified by an abstract ID.

Maybe I don't understand what is ment by "dynamic components", but this
seems bad.

Here is an example of what I mean.  Pretend we are implementing an e-comm
"solution" (something I do very often :).  We have a Cart component that
maintains what's in the shopping cart, and calculates sales taxes and so
on. We also have a User component that emcapsulates shipping address,
billing 
 
address and so on.  And a Checkout object that acts like the check out
counter.  The each operator of the "solution" will have Checkout object,
that needs an User and Cart object just for itself.  Lets call this an
application instance.

Reading your RFC, I get the impression that User, Cart and Checkout are
dynamic components.  However, having to add code to Checkout so that it
remembers the abstract ID of components would be annoying.  So there has to
be some sort of "localised" ("application instance" in this case)
namespace. So that Checkout can blithly go $self->emit(User =>
'calc_sales_tax'); and
 
the messages is sent to the appropriate User object out of the many that
have been instantiated within a give POE universe.

> How do we expose an arbitrary number of events when we don't even know
> them ahead of time?

IMHO, component interfaces MUST be dynamically modifyable.  The interface 
spec in POD is just syntatic sugar.  Agregates and things like "Connects:"
also need to be changable at run-time, ie dynamic.



Also, I've implemented something like this OO, called it JAAS.  But, being
a tool, I haven't finished the doco, so no one has looked at it yet. 
*sigh*

-Philip

Reply via email to