> How? Each control creation, event binding etc still has to happen
> and will be the same number of lines.
well... I was talking about menus... and... well... having them built
uppon a python structures like a dictionary or an array would allow for
one point modification (in the declaration of the python structure)
the actual creation of the menu and the event binding would take place in
a for loop.
That has absolutely nothing whatsoever to do with whether you use
-1 as the id all the time, or named ids which is what the original
discussion is about 
Depending on the app, its structure, i18n etc, it may choose
to write code like this:
menu.Append(...)
menu.Append(...)
menu.Append(...)
...
wx.EVT_MENU(...)
wx.EVT_MENU(...)
wx.EVT_MENU(...)
Or like this:
for item in structure:
menu.Append(...)
wx.EVT_MENU(...)
Or use XRC or whatever. At some point ids are allocated no matter
what. You could do them explicitly like I did where names and
values are associated as class variables and are visible in all
the code and to external HTML.
On the other end of the spectrum you could you could do them
implicitly by passing in -1, and doing Bind with the item,
or GetId().
The former strategy is best if the same command is available
in multiple ways simultaneously, such as menu items, toolbar
buttons, HTML, XML etc, external files etc.
well think of it like a plug-in architecture, you have the generating
algorithm (the for loops) so if you want to add or remove functionality
all you have to do is modify some python structures and update the
interface.
Again, this is for the menus and toolbars NOT for the rest of the controls.
The way you create controls such as menus, toolbars and everything else
is best determined by the application author. I would expect everyone
to agree that it should be easy to maintain and update. However that
has nothing to do with whether named ids are used, or auto-allocated
ids!
I came to python from java and I do hate to see that there are a lot of
things that java does better.
Java's way more mature when it comes to the way GUIs are created, it
benefits from good design.
I know things can be better, I've seen them done somewhere else.
I also do Java. It took them many revisions to get right. Did you
ever do AWT in Java 1.0? I have also done Tk, Motif, X11, Win32, Win16,
MFC, WindowsCE, and various random forms of basic (including Visual
Basic 
GUI toolkits should be judged on several measures. One is completeness.
Do they offer lots of different widgets? (I had to write my own combobox
when using Tk a few years ago - not a fun experience). Do they interoperate
with the rest of the system (clipboard, drag and drop, printing)? Does
the user have to know or care what you are using? Is it well designed?
[The easiest way to tell how well designed it is is to examine how
well i18n/l10n is supported]. Lastly, how robust, bug free and well
documented is it? Oh, and if it doesn't do geometry management (aka
sizers) then run away (the exception is UI toolkits for PDAs etc
but even then the lack of geometry management bites when new models
with different sized screens come out).
wxWidgets/wxPython scores very highly. Recent Swing does as well.
I don't think there are major mistakes in either.
Roger