GUIs - A Modest Proposal

ant shimbo at uklinux.net
Wed Jun 9 07:16:23 EDT 2010


Since I started this thread, I feel a sense of responsibility for it,
in some bizarre way.
Not to prolong its existence, which is clearly a troubling one for
some, but to try to steer it towards some kind of consensus that will
irritate the least number of people. Or better, that will gain some
kind of support and momentum so that something happens.
And since I have neither a reputation to lose, nor any great fondness
for most of the proposed solutions, I will try to summarise some of
the points made as impartially as I can. And I will add my own
opinions; but a group as sophisticated as
this will be able to spot them...

1 Although a few advocates of Tkinter have spoken in favour of it,
most seem to think that:
    It's not particularly elegant, either in its use or its
implementation with Tcl/Tk
    If we didn't have a GUI in the distribution, we wouldn't choose
Tkinter now; it seems like its inclusion
    is  a sort of historical accident.
    It may be all right for small projects, but once things get
bigger, you have to throw away what you've done
    and use something else.
    Not many people use it anyway, so why bother?

2 Most people who have used a GUI have some investment in it. So
arguments about which one is best tend to be
  partial and not wonderfully constructive.
  Indeed, about the only common thread that comes out seems to be a
general dislike of Tkinter.

3 There is a surprising number of people who think that Python
shouldn't have any 'favoured' association with a
  GUI at all. I find that surprising because of my own experience: I
have written a few hundred Python programs
  over the last few years, mostly small and almost entirely for my own
benefit. Most of those don't use a GUI. But      whenever I
  write a program that someone else is going to use, it has to have a
GUI. Is that not true for most people?

4 Some think that including any sort of GUI is 'bad'. People can
choose the one they want from the large list available.
  I certainly don't want to stop people doing what they want. However
many people have neither the time or the
  expertise to decide, and the experience of choosing the wrong one is
a real turn-off.
  That, in my opinion, is where a replacement for Tkinter should be
aimed: the beginning graphics programmer.
  But if it is built on the right foundation (which Tkinter seems not
to be), it could be extended to cover
  far more useful cases than Tkinter can.

5 I should stop pontificating, and write code. If it's better than the
existing, people will use it and it will
  become the standard.
  I don't think so. Even vast libraries of well-written code haven't
become the standard. I seem to remember a
  DEC assembler manual from the last century, which said "A standard
doesn't have to be optimal, it just has to be
  standard" (Feel free to correct me on that one. The last century
seems like a long time ago).

So I think comments like "the system doesn't work like that - nothing
happens till code is working" miss the point.
We are not talking about some vital but complex module or library here
- it's more important than that.
We are talking about the thing that the rest of the world sees as
Python's biggest missing piece - the thing that
beginning programmers look for and don't find - a decent, well-
supported and elegant GUI.

And who are the beginning programmers going to turn into? If we do our
stuff right, Python programmers. If not,
Java or PHP or Visual Basic programmers. Or website designers. Or
worse (is there a worse?).

So, to summarise the summary: I reiterate my call. Somebody has to get
Tkinter out of the distribution and replaced
by something that - as a minimum - doesn't get slagged off by nearly
everyone.

It can't be me - I don't have the clout.






More information about the Python-list mailing list