Python component model
Steve Holden
steve at holdenweb.com
Sat Oct 14 08:55:09 EDT 2006
Edward Diener No Spam wrote:
> Kay Schluehr wrote:
>
>>val bykoski wrote:
>>
>>>Peter Wang wrote:
>>>
>>>>Edward,
>>>>
>>>>This isn't in response to any specific one of the 100+ posts on this
>>>>thread, but I justed wanted to encourage you to continue your
>>>>investigation into Python component models and maybe looking for some
>>>>common ground between them. Frequently the individual developers are
>>>>too heads-down on working on their own things to do a broad survey, so
>>>>I think this would be very useful indeed.
>>>>
>>>>I wouldn't have felt it necessary to post this except for the large
>>>>number of posts along the lines of "foo.dict is introspective enough
>>>>for me!". I think you might have an easier time evangelizing the
>>>>principle of component-oriented programming (or "event-based", or
>>>>"reactive", or whatever) if you separated it from the notions of RAD UI
>>>>development. There is a very large difference between writing
>>>>components and writing objects, and it seems that most people arguing
>>>>"python doesn't need components" don't see this distinction.
>>>>
>>>>For me, it's the difference between writing "live" objects and "dead"
>>>>objects. Live objects not only encapsulate implementations of an
>>>>interface with some state, but they also encapsulate handling of
>>>>events, i.e. responses to changes in their environment. Dead objects
>>>>have methods but there has to be a function somewhere that knows which
>>>>dead object to call with what parameters at exactly the right time.
>>>>(The only mechanism for managing this complexity is to create ever more
>>>>functions at ever higher levels of abstraction, or to have a
>>>>proliferation of nebulously-defined "manager" objects.) IMHO once you
>>>>cross this chasm and are able to model your problem domain with live
>>>>objects that go off and automatically respond to the runtime
>>>>environment and Do the Right Thing, it's very hard to go back to a dead
>>>>object mindset. I can understand, however, that until one makes this
>>>>leap, it might seem like an academic and useless distinction.
>>>>
>>>>-peter
>>>>
>>>
>>>Excellent post, Peter. Thanks for great clarification. Looking from a
>>>physicist' perspective, im always trying to compare/evaluate languages
>>>from "the physical reality/dynamics" angle. So, the run-time
>>>space/dynamics is the only one that matches the natural "always-runtime"
>>>objects - atoms, molecules, EM fields, biological cells(?). It is the
>>>*reactive* world with event/forces-driven dynamics. Seemingly, there is
>>>nothing beyond that, including biology.
>>
>>A more conventional notion is that of static/dynamic properties of a
>>language. Component models that guarantee certain properties at compile
>>time are easily checked for consistency but to many programmers ( I
>>guess most of the programmers who attend to this list ) they are
>>inflexible: you might change or adapt your components according to
>>events, switch between entities, enable dynamic configuration etc. This
>>can be achieved in C++, Java etc. as well but not without pain.
>
>
> Having "static" properties and events is necessary for visual RAD
> programming environments, where connections are being setup between
> events and event handlers, and properties are being initialized, at
> design time. This does not preclude the normal "dynamic" attributes of
> Python. However if Python programmers reject such visual RAD programming
> environments as having any value, then they probably won't be interested
> in a common component model for them.
Such a model would definitely have value (particularly if all tool
builders subscribed to it: that was how Beans achieved ubiquity).
But there is no such model at the moment. A project to create one might
receive support or it might not. There's one way to find out ...
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden
More information about the Python-list
mailing list