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.
Don't worry about irritating people. There are a subset of folks on
this list that await the chance to be offended just so they can spew
bile. Really, don't worry about them. And never allow these minions to
quell your freedom of speech, because they will try.
Or better, that will gain some
kind of support and momentum so that something happens.
Exactly. Thats the very point that the naysayers miss. Pythons
community is no "field of dreams". Just because you build it, doesn't
mean they'll come. Even if what you build is better, they still
probably won't come, or even give a flying fig.
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.
I don't think it was an accident. Guido forged the path of Tkinter's
inclusion in Python. From what i understand he wrote most of Tkinter
and IDLE himself! (albeit a very long time ago). This all stems from
"Computer Programming For Everyone". Guido had a vision, and he left
that vision in our hands and we utterly failed to maintain it! It has
now fallen into complete ruin. And any motivation to pull ourselves
out of this rut is missing.
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?
The GUI that Python includes will never (AND SHOULD NEVER) be for
winning "GUI of the year" contests. The sheer size of wx or others
prevents their inclusion and rightly so. People need to stop using
this argument because it is a moot point. The GUI must be small,
pythonic, and cross platform. Used only for utility and learning
purposes.
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.
And the cycle continues...
# DONT RUN THIS CODE ;-)
import itertools
state = itertools.cycle(['But Tkinter Sucks!', 'So Fix Tkinter!'])
while arguing:
.... print state.next()
# DONT RUN THIS CODE ;-)
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?
These people are the ones who cannot change with the times. You know
what they say. """ Change with the times or get left behind""". They
would rather hack together a curses front-end than to drop into a GUI,
yes really. You old timers need to get with the program, GUI is here
to stay until wet-ware interfaces take over. So drag yourself into the
21st century (kicking and screaming if necessary)
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.
Tkinter is aimed at the newbie and i would think that was Guido's
original vision. And it's not the worst GUI by far. But we need to fix
it, or abandon it.
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.
Agreed!
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.
Writing code guarantee's NOTHING! That is the whole point of threads
like this one. First do research and then write code. Not the other
way round lest you have time to waste.
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.
Exactly! see my last answer.
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.
Yes we need a leader. Someone who is not afraid of the naysayers.
Someone with Guido's vision. When the leader emerges, the people will
rally.