Python component model

Edward Diener No Spam eldiener_no_spam_here at
Mon Oct 9 21:49:25 CEST 2006

Echo wrote:
> On 10/9/06, Edward Diener No Spam <eldiener_no_spam_here at> 
> wrote:
>> The definition of a component model I use below is a class which allows
>> properties, methods, and events in a structured way which can be
>> recognized, usually through some form of introspection outside of that
>> class. This structured way allows visual tools to host components, and
>> allows programmers to build applications and libraries visually in a RAD
>> environment.
>> The Java language has JavaBeans as its component model which allows Java
>> applications to be built in a visual RAD way. Microsoft's .Net has a
>> component model built-in to its .Net class libraries as well as
>> supported by CLR which allows .Net applications to be built visually
>> using components created in any .Net supported language.
>> With Python things are different. There is no single component model
>> which allows Python developers to build components which will be used
>> and recognized by the various RAD Python tools on the market. Instead a
>> developer must create a slightly different set of Python classes for
>> each RAD Python tool. This is the situation despite Python's having
>> easily as much functionality, if not much more, as Java or .Net
>> languages such as C#, VB, or C++/CLI for creating components, and for
>> allowing visual tools to introspect the properties, methods, and events
>> of Python classes.
>> I believe that Python should have a common components model for all RAD
>> development environments, as that would allow the Python programmer to
>> create a set of classes representing components which would work in any
>> environment. I want to immediately point out that components do not
>> simply mean visual GUI components but what may be even more important,
>> non-visual components. Having used RAD development environments to
>> create applications, I have found such environments almost always much
>> better than coding complex interactions manually, and I believe that
>> visual development environments are almost a necessity in today's world
>> of large-scale, multi-tier, and enterprise applications.
>> Has there ever been, or is there presently anybody, in the Python
>> developer community who sees the same need and is working toward that
>> goal of a common component model in Python, blessed and encouraged by
>> those who maintain the Python language and standard modules themselves ?
>> -- 
> If you are talking about about creating a GUI and having be able to
> run using different GUI libraries like Tkinter, wxPython, wxgtk, ect.
> You could look into Dabo( It is designed so that
> you can design your GUI and have it run with what ever GUI library you
> want(only wxPython is supported at the moment. And I think that
> Tkinter works somewhat.)

It's not just for GUI controls that a component model exists in the 
other environments I mentioned. Non-GUI components are intrinsically as 
important, if not more so, to a component model architecture. Also, 
quite honestly, I think a component model would have to be specified by 
the core Python developers instead of retrofitted against the popular 
GUI environments for Python which currently exist. Also I admit I am no 
fan of wx-you-name-it, whose "event" model especially I find way too 
limiting and ineffective in relation to the entire area of 
component-based programming and events.

More information about the Python-list mailing list