I'd like to support *most* of Jeff's tirade about IDEs that generate code,
and mostly for the reasons he gives. But I do think that using one of
these early on in learning something like wxWindows/wxPython is
tremendously helpful in getting up the learning curve. And, like Jeff I
believe, I use one (wxDesigner) rather constantly to knock out the original
prototype of a GUI. Why type all that code from scratch and then go
through a very clumsy edit/test series of iterations when within the GUI
generating IDE this is extremely fast and painless? Since most of my
"bugs" involve typos, getting the original code generated is a huge time
saver. And you can make rather major changes (reparenting substructures of
your GUI, moving stuff around, etc.) within the IDE without spending a lot
of time retyping stuff and introducing idiotic simplistic bugs.
That being said, the very first thing I do once I've got that prototype is
to convert it to "real" (and much more maintainable code) by (a)
encapsulating things in classes, (b) substituting reasonably named
variables for things like 'item0', 'item1', etc., and (c) removing various
artifacts that such code generators need to put in the code (extraneous
arguments to methods calls, extraneous definitions of ids, etc.).
There is one more problem to using a code generating IDE that I don't think
Jeff mentioned. You will discover that no matter how good these things
are, if you really want to do some sophisticated and innovative interface
design for a particular goal, you will run into situations that the IDE
doesn't support and you'll need to do by hand. If you do confine yourself
to creating a GUI with an IDE, then there will simply be times that you'll
sacrifice developing a better interface because either the IDE doesn't
support what you need to do or because you can't figure out how to get it
to do it.
···
--------------------------------------
Gary H. Merrill
Director and Principal Scientist, New Applications
Data Exploration Sciences
GlaxoSmithKline Inc.
(919) 483-8456
Hi,
Just to add one more note on this subject. Before I
did all my editing work in Boa, which worked very
fine. At a certain point I wanted to start using
sizers heavily as it creates more dynamic gui's.
That's why I switched to wxGlade which does that job
perfectly. Unfortunately wxGlade is not an IDE and I
needed a good Python IDE which can run inside Blender,
which didn't exist as well.
Therefore I made SPE (http://spe.pycs.net). For me the
combination of spe and wxGlade which are now closely
integrated (press Ctrl+Alt+G and changes in wxGlade
appear now automatically in the spe editor), works
very fine. Spe was developped in Boa, but now with
wxPython 2.5 I decided to rewrite the source again
from scratch, so that spe is completely developped in
wxGlade and spe itself. Moreover I want to make the
MDI framework optional as it fails for Mac Os X.
Of course this is very subjective, as I'm the author
of spe, but the combination of spe and wxGlade than
looks perfect to me. At the moment spe is not
compatible with wxPython 2.5 So if persons would be
interested in the new version of spe, some patience is
needed. I don't know when I'll have this job done, but
it probably will take a month. Of course testers on
all platforms will be helpfull than to make it
bugfree.
Ciao,
Stani
http://www.stani.be
···
__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway
http://promotions.yahoo.com/design_giveaway/
Shucks. I was shooting for 'screed' level. Ah well, I'll work on that 
But, nice fleshing out of some of my points. Having turned away from such programs early on, I've had less opportunity to accumulate pro/con points on them.
... "I've just had an apostrophe!"
···
gary.h.merrill@gsk.com wrote:
I'd like to support *most* of Jeff's tirade about IDEs that generate code,
FYI.
Some time ago I made a small utility to 'parse the content of a Word2000
file and produce wxPython code' (sounds like a 1st of April note).
I mostly hand-write my GUI code (wxPython) and very often forget the
details of the sizer stuff. So I thought I could 'draw the dialog and
its sizers' using Word2000 which allows tables to be included in tables.
The utility consists of a small Python program (using win32all) and a
thin layer on top of the wx classes.
I use it for small GUI projects. I've tried to make the separation
between GUI and functionality as clear as possible. This allows for
having non-developers construct the actual GUI using Word2000 and the
developers can then 'hook their functional code' into the generated GUI
code.
The system is definitely not WYSIWYG - but rather WYIIHWYG (what you
imagine is hopefully what you get)!!
Source code (including some example code and documentation (Word2000
file)) may be downloaded from www.micon.no/PythonPage.asp
Nikolai