From: Carl Banks on 6 Jun 2010 23:31 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 6 Jun 2010 23:54 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 7 Jun 2010 00:52 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 7 Jun 2010 06:08 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 7 Jun 2010 06:12
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++. |