Edward said:
It looks as if traits is an attempt to create a "property" in the
component terminology which I originally specified. I will take a look
at it.
Traits is frighteningly similar to the requirements that you laid out
in your post (the example for Skip), including delegates! I would like
to point out, however, that traits is a *general* component framework
for python that facilitates implementing the observer pattern and a
higher level of introspection. It can be used to build applications
that have no visual interfaces at all, but wish to benefit from the
"reactive programming" style that componentized, event-based
programming encourages. (induces?)
Traits UI, which Robert only alluded to, is actually very much the sort
of RAD environment you have described. It builds upon the component
model, and uses introspection to automagically create nice widgets for
your model, but adds mechanisms for specifying controllers, customizing
behavior, and generically composing complicated forms from simpler
ones. There is even a visual "builder" tool for it called VET that
closely resembles Delphi/C++ Builder. (The VET itself is, of course,
written using Traits UI.)
Envisage, the plugin application framework, can use the traits
component models and the TraitsUI interfaces to roll out very dynamic
applications, whose underlying models are all live components that can
be scripted, twiddled with from an embedded Python shell, etc.
Already subscribed. Thanks !
Please contribute ideas or ask conceptual questions!
Oh, and disclaimer: I also work at enthought.
-peter