From: rantingrick on 6 Jun 2010 17:11 On Jun 6, 2:06 pm, Mark Lawrence <breamore...(a)yahoo.co.uk> wrote: > On 06/06/2010 16:31, rantingrick wrote: > > > > > On Jun 5, 9:22 pm, ant<shi...(a)uklinux.net> wrote: > > >> 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 > > > Yes i one hundred percent agree! The only problem is i am the only > > one! Good luck finding others to climb into this boat. From the > > beginning there has has been this really weird love-hate relationship > > with Tkinter in the Python community. I myself experience this > > emotional attachment every day as i wish for Tkinter to be more > > "pretty" and "feature-rich" whilst at the same time loving it's > > simplicity. Tkinter seems to be Python's whipping boy and nobody wants > > to whip another, so we are stuck in limbo with a lobotomy. > > > Heres an idea though, why not expand Tkinter with some new really cool > > widgets...? Hmmm...? That TIX package is a real PITA and could use a > > re-write. Can you believe it took until py3.0 for Tkinter to get a > > combobox :-O! Yea i know! :'-( > > Patches are welcome at any time. I look forward to seeing your first > contribution. > > Kindest regards. > > Mark Lawrence. Hello Mark, Are you maintaining Tkinter or Tix or both? There is a nagging issue with Tix that needs fixing. Upon subbclassing some widgets and when using the import Tix and import Tix as *. Maybe it is already fixed in 3.0 (i have not checked) but we need to fix it. I am still currently rewriting Tkinter Tix and IDLE in my spare time but got a bit busy lately. Anyhoo, i would really like to bring some patches, upgrades, and just a general spit shining to the entire three- plexx so let me know.
From: Kevin Walzer on 6 Jun 2010 18:49 On 6/5/10 10:22 PM, ant wrote: > I get the strong feeling that nobody is really happy with the state of > Python GUIs. Says who? > Tkinter is not widely liked, but is widely distributed. I'm a strong advocate of Tkinter--there is very little that it cannot do. WxPython and > PyGtk are both > powerful, but quirky in different ways. PyQt is tied to one platform. > And there are > dozens more. Each has its strengths and weaknesses. They reflect the diversity of GUI programming in general. > > 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). That's debatable. These other toolkits have a decade or more of development behind them. How are you going to improve on them? > > 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'd say no. I used to be frustrated with the range of GUI options for Python, but the issue was just to get started. I found Tkinter to be useful for me, I was productive in it, and I have stayed with that. > > 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 > > These goals are not all complementary. In fact, some of them, such as "small" and "comprehensive," are mutually exclusive. Tkinter is pretty small; people complain it lacks things. PyQt and wxPython are pretty comprehensive; people complain about their learning curve. The very diversity of GUI toolkits came into effect because Python is very easy to extend and integrate with other C/C++ libraries. Writing a GUI toolkit from scratch is much, much harder. Even a simple toolkit like Tk has twenty years of developer-hours behind it. Do you really think the Python community will be able to a) agree on the design of a new toolkit to replace Tkinter and b) implement the code in a timely fashion across multiple platforms? It sounds like an impossible goal to me. --Kevin -- Kevin Walzer Code by Kevin http://www.codebykevin.com
From: ant on 6 Jun 2010 18:55 On Jun 6, 2:22 pm, ant <shi...(a)uklinux.net> wrote: > I get the strong feeling that nobody is really happy with the state of > Python GUIs. <snip...> What an interesting set of responses I got! And - even more interesting - how few of them actually seem to think there is a problem, let alone make any attempt to move the situation forward. I appreciate that there are proponents of many different GUIs. I am asking that all step back from their particular interests and - for example - try to see the situation from the viewpoint of - say - a Python newbie, or an organisation that is thinking of switching from (example only!) Visual Basic. I obviously didn't make my main point clearly enough; 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). 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. None of these is easy. All require strong leadership and great committment. What surprises me is the apparent willingness of the Python community to let this issue slide. 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. My concern is simple: I think that Python is doomed to remain a minor language unless we crack this problem.
From: geremy condra on 6 Jun 2010 19:16 On Sun, Jun 6, 2010 at 3:55 PM, ant <shimbo(a)uklinux.net> wrote: > On Jun 6, 2:22 pm, ant <shi...(a)uklinux.net> wrote: >> I get the strong feeling that nobody is really happy with the state of >> Python GUIs. > <snip...> > > What an interesting set of responses I got! > And - even more interesting - how few of them actually seem to think > there is a problem, let > alone make any attempt to move the situation forward. > I appreciate that there are proponents of many different GUIs. I am > asking that all step back > from their particular interests and - for example - try to see the > situation from the viewpoint of > - say - a Python newbie, or an organisation that is thinking of > switching from (example only!) Visual Basic. > > I obviously didn't make my main point clearly enough; 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). > > 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. > > None of these is easy. All require strong leadership and great > committment. I take it you're volunteering? Geremy Condra
From: AD. on 6 Jun 2010 20:03
On Jun 7, 10:55 am, ant <shi...(a)uklinux.net> wrote: > My concern is simple: I think that Python is doomed to remain a minor > language unless we crack this problem. 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? As far as I can tell, most of the other cross platform dynamic open source languages (eg Perl, Ruby, PHP, Javascript) face the same problem or don't even include a GUI toolkit. The one exception I can think of that has a non-fragmented native GUI option is Tcl (which being Tk is slightly ironic here), but it hasn't stopped Tcl being doomed to be a much more minor language than Python is. ..NET/C# has had preferred GUI APIs come and go and isn't exactly what I'd call crossplatform, Java has had (and still does?) multiple toolkits, C/C++ never included any to begin with. Objective C has an obvious native GUI choice, but it's not at all crossplatform and is about as 'minor' a language as Python is anyway. Legacy VB and Delphi had built in GUIs but they weren't really cross platform and seem to be slipping out of relevance. Looking at the state of other languages and their GUI toolkit landscape, someone might even come to the conclusion that having one true GUI toolkit is potentially a bad thing for a language. I don't do any GUI coding so I don't have any toolkit preferences myself, but I think the only sane way to address your concerns is to incrementally improve Tkinter. Coming up with a new toolkit from scratch is insanity, and switching the toolkit to something else doesn't actually help much (ie you don't think any are currently suitable anyway) and is just as likely to annoy other people. -- Cheers Anton |