Defining VCL-like framework for Python
Alexander Staubo
nospam at mop.no
Wed May 19 09:04:40 EDT 1999
In article <374286A0.77374B26 at infercor.no>, paulb at infercor.no says...
[snip]
> > Imho, Python needs a better windowing toolkit than is provided by
> > Tcl/Tkinter today. That's just me. Furthermore, Python does not have (at
> > least afaik) a component-based system for building applications. Python
> > provides many facilities that the VCL defines -- such as persistence and
> > RTTI-like mechanisms -- but afaik there is no well-defined protocol for
> > creating cross-module components.
>
> Could you clarify what you mean by "cross-module components"? As for the Tkinter
> issue, surely there are now more than ever some real alternatives to Tkinter for
> developing graphical user interfaces. I note that wxWindows is now at version 2
> and gaining some momentum - wxPython is even promoted on the wxWindows home
> page.
By cross-module components I mean a defined protocol for publishing
component-like objects. Think "like JavaBeans" and we're getting closer.
> [Description of goals cut]
>
> > One definite guideline here is not to rely on third-party windowing
> > system support: in other words, the project will not use wxPython,
> > Tkinter or any other library, although not precluding the ability to
> > write controls that use such libraries internally.
>
> Could you explain this decision a bit more? It would seem to me that taking
> advantage of one of the more established toolkits would save a lot of extra work
> and allow you to concentrate on the "higher level" aspects of such a project.
Indeed, although I don't agree that the project should be written around
a specific toolkit. Certainly, the base controls could be written using
Tkinter/GTK/QT/wxPython/whatever on one platform (eg., UNIX); on another
platform, such as Windows, it would probably be more efficient _and_
cleaner to have the controls write "directly to the metal".
Most windowing toolkits introduce their specific paradigm for creating
visual "widgets", and they keep you enclosed within the limits of this
paradigm. I'd like a system where I could write a part of my
application with Windows-specific code, or X-specific code, or both (eg.,
"if windows:"), with the aim to milk a platform's GUI support for
everything it's worth. For example, OLE-based drag and drop support is
unlikely to exist for UNIX: But I might want that in. Or perhaps I'd like
to trap specific control messages that do not exist on the Mac.
Afaik, things like Tkinter are "widget libraries". I'm aiming for both a
higher level of abstraction, and a more complete approach -- cover more
bases, so to speak.
[snip]
> Arguably, Tkinter doesn't even "suck". Yes, people do wonder about the Tcl
> dependence from time to time, but this is only really a consideration where
> installation issues (restrictions, managing versions of lots of different
> packages) are more important than usual.
Different strokes for different folks, I guess. A big beef with Tkinter
is that it requires 1.4MB worth of runtime DLLs to be bundled with any
application.
> > Note that the project I have delineated here is not about "reproducing
> > Delphi in Python". At least not yet. :) I want mainly to steal a few good
> > ideas, improve others, and create something that makes Python more
> > valuable to those "visual" programmers out there -- one of whom I don't
> > necessarily count myself, although I sure miss a good windowing toolkit
> > in Python; it deserves one.
>
> It would indeed be good to create such a tool, but I do question the need to
> write an entirely new toolkit to achieve this.
Actually I did expect the Spanish Inquisition when I wrote my proposal,
but I'm still surprised by the response.
--
Alexander Staubo http://www.mop.no/~alex/
"Give me an underground laboratory, half a dozen atom smashers and a beautiful
girl in a diaphanous veil waiting to be turned into a chimpanzee, and I care
not who writes the nation's laws." --S. J. Perelman
More information about the Python-list
mailing list