How to get started in GUI Programming?

Cameron Laird claird at lairds.us
Tue Nov 29 12:08:02 EST 2005


In article <1133100977.632961.23300 at g44g2000cwa.googlegroups.com>,
Kay Schluehr <kay.schluehr at gmx.net> wrote:
>
>peter.mosley at talk21.com wrote:
>> I am trying to learn GUI programming in Python, but have to confess I
>> am finding it difficult.
>
>Don't do it if you can prevent it.
>
>GUI - toolkits are very complex beasts and at least to me a source of
>pain far more as a joy. Python cannot help you making them
>significantly simpler but on the contrary add just another level of
>indirection. Python normally shines when you have to glue libraries
>together or programming simply Python scripts for a broad range of
>purposes but if the wrapped library publishes a huge interface with
>hundreds of classes and thousands of methods and attributes the benfit
>of Pythons abstraction converges to zero. Python does not offer a good
>toolchain to take up with Swing, WinForms or Qt to name just a few
>delivered with IDEs that are very helpfull in developing GUI apps. Not
>to talk about documentation...
>
>Conclusion: if you are already familiar with BASIC I would just
>continue writing BASIC apps using VisualBasic dotNet, Windows Forms as
>the underlying GUI toolktit and VisualStudio as IDE. Forget the
>coolness factor of the language. Cool people never care a lot what
>other people think. If you finally want to glue assemblys/controls
>together in Python this is still possible with IronPython or
>Python-dotNet ( which is a CPython binding to the CLR, available at
>Zope.org ).
>

There's something about this that bothers me, Kay.

I like the clarity and precision of your explanation.  To
avoid trouble is advice worth emphasizing.  I applaud your
emphasis on Python's adeptness at co-operating with other
languages.

I think you've left a few things unsaid, though.  Others
have pointed out in this thread that, for example, Web
applications are *great* for many GUI requirements.  Also,
although toolkit zealots regularly underestimate the
"activation energy" often required to configure a develop-
ment environment, newcomers deserve to know how easy it can
be to start with Tkinter.  While it doesn't make for the
slickest MacOS-style applications, it's pedagogically
pertinent that a Mac comes "out of the box" with the ability
to
  import Tkinter
  Tkinter.Button(Tkinter.Tk(), text = "Push me").pack()
That sort of brevity can encourage beginners in an important
way.



More information about the Python-list mailing list