From: Carl Banks on
On Jun 5, 7:22 pm, ant <shi...(a)uklinux.net> wrote:
> I get the strong feeling that nobody is really happy with the state of
> Python GUIs.
> Tkinter is not widely liked, but is widely distributed. WxPython and
> PyGtk are both
> powerful, but quirky in different ways. PyQt is tied to one platform.
> And there are
> dozens more.
>
> Whether or not we like graphics programming, it's not going to go
> away. I get the
> uneasy feeling whenever I start a new project that there should be a
> 'better' GUI
> than the ones I currently use (WxPython and PyGtk).
>
> Fragmentation is our enemy. Our resources are being dissipated. Is it
> not time to
> start again? We have shown that it is possible to do the right thing,
> by creating Python3.
>
> I ask the group; should we try to create a new GUI for Python, with
> the following
> properties?:
>
> - Pythonic
> - The default GUI (so it replaces Tkinter)
> - It has the support of the majority of the Python community
> - Simple and obvious to use for simple things
> - Comprehensive, for complicated things
> - Cross-platform
> - Looks good (to be defined)
> - As small as possible in its default form
>
> If so, what are the next steps?
>
> The Python SIG on GUIs closed years ago. Should that be revived?
>
> This is "A Modest Proposal" (J. Swift). In a sense, I am suggesting
> that
> we eat our own babies.
>
> But don't we owe it to the community?

Speaking for myself, PySide has resolved this issue for me. I used
PyQt for some things but didn't want to use it for everything because
of the license, but I'd be ok to use PySide for anything. It's
portable to the major systems and generally better (IMHO) than the
other toolkits.


Carl Banks
From: Aahz on
In article <80a7b823-6acb-4ac9-a273-525054265050(a)k25g2000prh.googlegroups.com>,
ant <shimbo(a)uklinux.net> wrote:
>
>My concern is simple: I think that Python is doomed to remain a minor
>language unless we crack this problem.

Where's your proof that Python is a minor language?
--
Aahz (aahz(a)pythoncraft.com) <*> http://www.pythoncraft.com/

"If you don't know what your program is supposed to do, you'd better not
start writing it." --Dijkstra
From: Carl Banks on
On Jun 6, 3:55 pm, ant <shi...(a)uklinux.net> wrote:
> I obviously didn't make my main point clearly enough;

I think you did make your point clearly enough, it's just that not
many agreed with you. But I'll play along.

> I'll restate it
> with a different emphasis:
> The default GUI shipped with Python is Tkinter.
> Few people seem to like it much. This has several consequences.
> - It has not blossomed, like Python has.
> - There are not hundreds of talented programmers making rapid and
> impressive improvements to it.
> - Books about Python use it in examples (because it IS the default),
> but imply that one should move on.
>
> The result that our hypothetical new recruit has to make a choice for
> the new, big project. Remember that
> GUIs have hundreds (sometimes thousands) of classes, functions and
> constants. Let alone idioms and design
> patterns. That is what I meant by 'Our resources are being
> dissipated'; the effort of learning, remembering
> and relearning a workable subset of these is substantial.
> So it would be good to be able to use One Right Way, not try several
> (as I have - I will admit I didn't try PyQt;
> GUI fatigue was setting in by then).

GUI programming is too complex for us (i.e., mankind) to have reached
any condition where One Obvious Way makes sense, we just don't know
enough, and there might not ever be one.

So it would be foolish for Python to go out and say "this is the One
Obvious Way"--it'd be like claiming to be smarter than mankind.

Right now the best way is to let GUI toolkits be toolkits and to
compete with each other.


> If we are to make progress, I can see two obvious approaches:
> 1) Improve Tkinter to the point where it is supportable and supported
> by a good fraction of Python programmers
> or
> 2) Drop Tkinter as the default and use something else.
>
> If we choose 2) then we have a new set of possibilities:
> 2a) Use one of the 'major' GUIs, pretty much as is, but presumably
> with a lot more people supporting it if it is the default.
> 2b) Use one of the 'minor' GUIs, and get a lot of people working on it
> to make it really good.
> 2c) Start from scratch. With a project supported by the Community as a
> whole, with the agreed objective of being the default.

I believe choosing any one of these options would do far more harm
than good.

The bureaucracy of the standard library works to keep Python headed
down the straight path for stable, mature tasks like basic
networking. But for dynamic, complex, cutting-edge tasks like GUI
programming it would bog everything down. Only straightforward,
simple GUIs like Tkinter are suitable for the standard library.

> None of these is easy. All require strong leadership and great
> committment.

Strong leaders in GUI programming are best left unhindered by the
constraints of Python's standard library process.

BTW, what's your plan for producing such a leader? Because if we
don't have a leader it's kind of a moot point. (I know some people
asked you to volunteer, but I suspect you would agree that you're not
up to the task, so I assume you are merely a visionary and have
someone lined up that you've somehow convince to do the dirty work of
leadership.)

> What surprises me is the apparent willingness of the Python community
> to let this issue slide.

It's not a willingness to let the issue slide; it's disagreement that
it's an issue at all.

> I can see that many people have committed to one GUI and want to use
> that forever. Fair enough. For the reasons I stated
> originally, I've not found one. I think a lot of people deep down are
> uneasy about this.

I haven't noticed much of that. The main objection seems to be that
Python carries around the dead weight of Tkinter, or at least that
it's basic GUI isn't actually written in Python.

I've seen a lot more people clamoring for a web framework a la Ruby on
Rails, mostly, I suspect, out of greed for exposure. Same issue,
though.

Notice that Ruby got typecast as a web language. Then people started
jumping off the RoR bandwagon, so now it's a web language with few
users. You want that for Python? I don't.


> My concern is simple: I think that Python is doomed to remain a minor
> language unless we crack this problem.

Well, if Python is considered a "minor language" now, I'd happy to
welcome that particular damnation.

-1


Carl Banks
From: ant on
I rather feel like I'm flogging a dead horse here, but time for
another mile...

First off, I'm not volunteering to lead this effort. I don't think
anyone should
even think about that until and unless the Python Powers That Be
actually
decide that it is worth doing. That is what I meant by 'strong
leadership'.

Second; 'A minor programming language'. According to

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Visual Basic is more popular than Python. That makes me feel that
there
is something wrong with the world.

Third: "I'm curious why you think fragmented GUI choices is a
particular
problem for Python compared to other languages? Or why this is the
main issue holding Python back? "
It's not a particular problem for Python compared to other languages.
It's a general problem for all programming languages. But I presume
that you read this newgroup because you think Python is in some sense
'better' than other programming languages. And I think we can make it
better still.

Fourth: " BTW, what's your plan for producing such a leader? Because
if we
don't have a leader it's kind of a moot point. (I know some people
asked you to volunteer, but I suspect you would agree that you're
not
up to the task, so I assume you are merely a visionary and have
someone lined up that you've somehow convince to do the dirty work
of
leadership.) "
I'm not a visionary and I don't have someone lined up. And I am
certainly
not up to the task myself. But I have watched with interest the
process of
turning Python2.x into Python3.x. Does that give any hints about who
I
think should be considering this topic (see first point)?


From: Nobody on
On Sun, 06 Jun 2010 15:55:41 -0700, ant wrote:

> If we are to make progress, I can see two obvious approaches:
> 1) Improve Tkinter to the point where it is supportable and supported
> by a good fraction of Python programmers
> or
> 2) Drop Tkinter as the default and use something else.

You forgot:

3) Drop Tkinter and don't provide any GUI toolkit as part of the standard
library.

It seems to have worked out okay for C and C++.