GUIs - A Modest Proposal

B

Benjamin Kaplan

I don't know whether this thread is going backwards, forwards or
sideways. But a lot of useful information is creeping out of the
woodwork.

I like the points about backwards compatibility. Presumably that
reason alone is enough to keep Tkinter in the standard library for a
long while.
But the point has also been made that there are several things there
that are - if not duplicates - at least alternatives.

So would it be so awful to have Tkinter and GUI2 (whatever it is) in
the stdlib, assuming that both had equivalent functionality? That
would be the way to give people the choice.
But it does imply that GUI2 is not too huge, to prevent excessive
bloat (is that a tautology?).
Other interesting comments: licencing. Can anyone give a concise
summary of whether the 'major' GUIs have any insuperable licencing
problems that would rule them out anyway? Programming is hard enough
without lawyers.

PyQT is dual-licensed GPL and commercial, so it can't be included.
PyGTK is under the LGPL which could cause some problems as well (which
would rule out PyGUI- the user shouldn't have to install a 3rd party
Python module to use a standard library module). wxPython is under a
modified LGPL. While the wxWidgets license is more permissive than the
LGPL, I still don't think it can be included.
 
M

Martin v. Loewis

It seems that removing Tkinter from the stdlib will not only benefit
Python, but also Tkinter; due to the fact that Tkinter will not be
confined to Python's release schedules. As we've witnessed so far
almost nothing has changed since Tkinter's addition many years ago.

That's not true. Python 2.7 adds support for the Ttk widgets. Also,
the turtle module was significantly revised for 2.6.

Regards,
Martin
 
M

Martin v. Loewis

Am 10.06.2010 23:20, schrieb rantingrick:
Free up pydev and send Tkinter to the bitbucket! But if you
*do* decide to include a GUI, should it not at *least* be based on the
native widgets like PyGUI?

So Tkinter is a good choice, then, as it *does* have native widgets.

Regards,
Martin
 
R

rantingrick

I like the points about backwards compatibility. Presumably that
reason alone is enough to keep Tkinter in the standard library for a
long while.

I don't see why that is a good reason. Download Tkinter and your
backward compatible again. The majority don't use it anyway. I would
bet that only myself, Kevin, and only a handful of others use Tkinter
for anything more than education purposes. AFIK, Kevin is THE ONLY
PYTHON programmer producing real professional GUI's with Tkinter -- i
encourage anyone else to speak up if your out there producing real
Tkinter GUI. (psst: i don't think we'll be seeing mobs in the streets,
really i don't)
So would it be so awful to have Tkinter and GUI2 (whatever it is) in
the stdlib, assuming that both had equivalent functionality?

That would be an atrociously horrible idea! One GUI is more than
enough. Some would say one GUI is far too much. Two GUIs? Yea that'll
get a warm reception from pydev. ;-)
 
M

Martin P. Hellwig

On 06/11/10 07:00, rantingrick wrote:
I would
bet that only myself, Kevin, and only a handful of others use Tkinter
for anything more than education purposes. AFIK, Kevin is THE ONLY
PYTHON programmer producing real professional GUI's with Tkinter -- i
encourage anyone else to speak up if your out there producing real
Tkinter GUI. (psst: i don't think we'll be seeing mobs in the streets,
really i don't)

The Karaoke Network, Kiosk machine uses tkinter on win32 for the
passcode interface (on screen keyboard).
Randstad HR Solutions (before that part has been sold off) had several
small database tools (which where cli orientated) using tkinter for
interactivity on win linux/win32.

Though I don't like tkinter either, but I don't seem to hate it as much
as others do.
 
R

rantingrick

So Tkinter is a good choice, then, as it *does* have native widgets.

And it only took how many years? ;-)

Ok i have a litmus test in mind, a way we can get a *real* idea of how
many python programmers actually want Tkinter to stay. In the next
release of Python 2.x and 3.x create a warning upon import of Tkinter
that says this...

"""
-------------------------------
ModuleRemovalWarning: Tkinter
-------------------------------
The GUI module "Tkinter" is being considered for removal from the
Python
stdlib FOREVER. If you use Tkinter and wish for it to stay in the
stdlib
you need to visit "www.savetkinter.com" and cast your vote now. The
voting
will end on dd/mm/yyyy so make sure to cast your vote or don't be
complaining
about it later. Note: Simon Cowell WILL NOT be making a celebrity
appearance!
"""

What can pydev lose from such a test? If the numbers are large then i
will jump full force behind Tkinter. But if not, we know it's time to
act.
 
M

Mark Lawrence

And it only took how many years? ;-)

Ok i have a litmus test in mind, a way we can get a *real* idea of how
many python programmers actually want Tkinter to stay. In the next
release of Python 2.x and 3.x create a warning upon import of Tkinter
that says this...

"""
-------------------------------
ModuleRemovalWarning: Tkinter
-------------------------------
The GUI module "Tkinter" is being considered for removal from the
Python
stdlib FOREVER. If you use Tkinter and wish for it to stay in the
stdlib
you need to visit "www.savetkinter.com" and cast your vote now. The
voting
will end on dd/mm/yyyy so make sure to cast your vote or don't be
complaining
about it later. Note: Simon Cowell WILL NOT be making a celebrity
appearance!
"""

What can pydev lose from such a test? If the numbers are large then i
will jump full force behind Tkinter. But if not, we know it's time to
act.

I look forward to seeing your request on the Python bug tracker. Not
holding my breath.

Mark Lawrence.
 
A

Arndt Roger Schneider

rantingrick said:
Urm, do you *know* what a Grid widget is Stephen? (hint: Excel) Do you
*know* what a ListCtrl is Stephen? (Hint: File Browser in report or
iconlabel views) Neither of those widgets exists in the Tix package.
And how do i *know* this? Well because unlike you i have actually
written code with Tix widgets, obviously you have not.


All this stuff is present in Tk!

OpenGL:
tkzinc, a 2D visualiation system based on OpenGL,
this one is widley used in air-traffic control...
BTW: tkinc features the best transformation system in the
IT--the author got a patent for it.

canvas3d, OpenGL-3D.

In addition there are *very very very large* visualization systems
available in Tk:
vtk for example...


ListCtrl --besides that I truely hate this type of controls, an
aggregation of usablility problems--
tkTreeCtrl is a true clone of MSWIN Explorer


Spreadsheet:
Well, whow doesn't exist in Tix! Are you sure? Hint: look again.
There is tktable, technically well done with on-demand data aquisition,
looks really ugly. An open field to display your artistic prowess.

Once upon a time there was a complete
spreadsheet application written in C++/Tk: abacus.
The TList only displays iconlabels in a wrapping column format, not in
any "report mode" ala: Windows Explorer("details mode"). The HList
widget is for showing a tree structure and is NOTHING like either a
ListCtrl or a Grid.

See above.
But notice this windows explorer type sort of thing is a major offence
on other platforms.

My own approach for such an interface function is to use seperate window
types, it reduces the maintainment cost for such an application.


HList:
Well *now* I am speachless. Did you actually even do a superfical
research on the topic?

BLT-tree
bwidget-tree
rtl_tree
hugelist
tkTreeCtrl (mentioned above)
ttk:treectrl
tablelist
tixtreecontrol
Just scanning the docs of a module (that you know jack about) and then
parroting off some baseless arguments are bound to bite you in the
@ss! *egg on face*

Please enjoy it.

-roger
 
M

Mark Lawrence

Thanks Mark, its done! "Tkinter Litmus Test"

I know, saw it on the bug tracker list before I left for work this
morning. Spoilsport, fishing is just no fun any more, you dangle a bit
of bait and it get's taken hook, line and sinker.

Mark Lawrence
 
A

Andreas Waldenburger

I don't see why that is a good reason. Download Tkinter and your
backward compatible again. The majority don't use it anyway. I would
bet that only myself, Kevin, and only a handful of others use Tkinter
for anything more than education purposes.

I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

/W
 
K

Kevin Walzer

I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

/W

Good point .Tkinter is very widely used in scientific visualization
software:

UCSF Chimera
http://www.cgl.ucsf.edu/chimera/

PyMOL
http://www.pymol.org/

There are others, no doubt.
 
M

Mark Lawrence

I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

/W

To quote R. David Murray on the Python bug tracker earlier today.

"Everyone who uses IDLE uses TKInter, and a lot of people use IDLE."

Kindest regards.

Mark Lawrence.
 
J

Jean-Michel Pichavant

Andreas said:
I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

/W
Moreover, the majority of the python scripts/applications do not require
any GUI, the majority of those which require a GUI don't require to be
pretty anyway.


JM
 
R

rantingrick

"Everyone who uses IDLE uses TKInter, and a lot of people use IDLE."

That sounds like hyperbole to me. What evidence do you have to made
such a statement. What evidence do *I* have to make the opposing
statement. We don't, so add the warning and put your money where your
mouth is instead of your foot :-!
 
S

Stephen Hansen

So would it be so awful to have Tkinter and GUI2 (whatever it is) in
the stdlib, assuming that both had equivalent functionality? That
would be the way to give people the choice.

There's some slight precedent, in that the stdlib does offer more then
one "xml" library -- from the suck of minidom, to sax, to elementtree.
Then again they all sort of address slightly different domains of
problems related to xml. Then there's urllib/urllib2 -- but usually, if
one library duplicates the intent of another, they only co-exist until
such time as the old one can Go Away. (Exactly how long that is,
depends: some 'to go away' libraries can survive a very long time due to
major usage).

That said, I'd be worried about--

But it does imply that GUI2 is not too huge, to prevent excessive
bloat (is that a tautology?).

When you factor in dependencies, it might be a lot. Then again, it might
not. Not counting dependencies, PyGUI seems reasonably sized -- the
other major GUI's? Way too big.
Other interesting comments: licencing. Can anyone give a concise
summary of whether the 'major' GUIs have any insuperable licencing
problems that would rule them out anyway? Programming is hard enough
without lawyers.

wxPython (and its dependency, wxWidgets) has a custom license, but its
very Python-like. Meaning, its essentially 'do whatever you want, open,
closed, commercial, charity, whatever'.

QT is LGPL -- and although you can technically include LGPL stuff in
non-[L]GPL libs, I don't think its policy in Python to allow it. It
creates a burden / obligation.

PyQT is GPL, so impossible to include at all. PySide, Nokia's answer to
PyQt not changing their licensing terms when Nokia acquired TrollTech,
is LGPL. Technically possible, but I don't think its allowable.

PyGTK is LGPL. Same issues: and this raises a question with regards to
PyGUI, which uses pygtk on linux to create its UI.

I don't remember what other UI libs are out there.

I might be wrong on the LGPL policy bit. But the only stuff I'm aware of
that Python bundles (i.e., zlib, sqlite) have the permissive 'do
whatever' type of license. I don't believe Python wants to create a
situation where any burden is placed on someone who embeds it.

--

Stephen Hansen
... me+list/python (AT) ixokai (DOT) io


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)

iQEcBAEBAgAGBQJMEnL3AAoJEKcbwptVWx/llsEH/3rgdtOikaQ9xbix/q8hTLjQ
5eqCsWhgyjAOqfTjGOfdAIsXMDwecRAGqC58MtZFJbvDtTsC1AUvdnPb9FMHa+W6
hxx0tVpciUf2h0ZVfaAKO3Iwm1khaCI7nDmK6tL+Jolqxkrr86hbmG14RCn4HJY0
J2hoJeP9cqFAir2umjUpj+6cJIjjMrmeMJMdGuru/WzdG2IF7OynrFlnBsd5NxL4
xGl7NaFdYSKa5ZA1fP59IZ4g1CU8hXBC6607evEgz6eXwSdLzXvYE1Koa8NxPq0w
OKZBZrb7J2qaZCiL65jznlD8T+QDInMsbcSDembtNWMSPGTMryPeA8bNsbzncFI=
=hqcj
-----END PGP SIGNATURE-----
 
S

Stephen Hansen

I don't see why that is a good reason. Download Tkinter and your
backward compatible again. The majority don't use it anyway. I would
bet that only myself, Kevin, and only a handful of others use Tkinter
for anything more than education purposes. AFIK, Kevin is THE ONLY
PYTHON programmer producing real professional GUI's with Tkinter -- i
encourage anyone else to speak up if your out there producing real
Tkinter GUI. (psst: i don't think we'll be seeing mobs in the streets,
really i don't)

Hint: the world and even Python community is a lot larger then this
mailing list.

A LOT.

--

Stephen Hansen
... me+list/python (AT) ixokai (DOT) io


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)

iQEcBAEBAgAGBQJMEnNPAAoJEKcbwptVWx/llegIAKvpfFZ/WPVd2nsbr4xlwRE7
BFeK58h+xAhP85cAR/wSZAqt6mqIiSCvjgcikdGuVL0vWO1s521HqUFJq61gK/sE
eFMB1vMMG6yyiPftof8fDW/ZMcRBINGaSvmQz7603wHRuo+sBck4DAzTWftdzhwf
vfswoFNO3XeQ5SRuc4Yb5/KW6AERkdx3NLwmTFB2DvYy4kkiOjKLylTRKFQA0NG/
efQjN03mFnFcZWeutoeg026ZcOw2yPB0/cXRdao+3gDHctBptU6DU0lK/ITGuWz1
rGJ1vHvBO7jSY3Rf9U53AS49FDiwuDtG7xrRG7L2g4x9S/VQCMpUBjWLfkjWLg8=
=B3hM
-----END PGP SIGNATURE-----
 
S

Stephen Hansen

I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

This.

Its used in a lot of in-house / internal things.

Another point: there's a not insignificant minority to whom 'just
download it' simply doesn't apply.

To replace tkinter would require a clea r upgrade path. Or a really,
really, really long deprecation period.

--

Stephen Hansen
... me+list/python (AT) ixokai (DOT) io


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)

iQEcBAEBAgAGBQJMEnO4AAoJEKcbwptVWx/l7WsIAKdfeE9q0RXz7vMT6KbKj1/G
Yj1nOWENDCZJKAFF7XLuKkXN4eVbDZsofJ5OVN9OR/t0haPIxJeW2eTLPGppeeCy
mPn2HdQfGL915qabdKxcsy0Qsd9xZ4udOWoYUfCO+ybsOOVWwHdOK/voSkKwZ3UQ
9hfF0d2kWUF4eob7QlsiC3FtueZ+u0Z5vLrhV+OkxBdwTBsokASuDTu6rDs+9VwG
SA/gNClrqTyeqyAkBxNI3+p379ZVQskbrGffJoAlAy/tV8rRPWTZD74uLItrK0q2
gJQMqofht8EBpCTywKF2xusjZvDPL7H6yszOQgI4ompHevCmy2PUpAKXHBIDCPw=
=n/Tg
-----END PGP SIGNATURE-----
 
M

Mark Lawrence

That sounds like hyperbole to me. What evidence do you have to made
such a statement. What evidence do *I* have to make the opposing
statement. We don't, so add the warning and put your money where your
mouth is instead of your foot :-!

I did *NOT* make the statement as my original post clearly shows.

<original>
To quote R. David Murray on the Python bug tracker earlier today.

"Everyone who uses IDLE uses TKInter, and a lot of people use IDLE."
</original>

Looks like you're mad cos the bug tracker issue has already been closed
as rejected. Or is it cos you fell for my bait? Or both?

To paraphrase Tommy Docherty, Ranting Rick is to Python what King Herod
was to baby sitting.

Have a nice day.

Mark Lawrence.
 
P

Paul Rubin

Andreas Waldenburger said:
I have a strong suspicion that Tkinter may be used a lot more than is
made public (isn't anything?). I'm especially thinking about scientists
who write special purpose data processing or control programs with
basic GUIs. These things don't have to be pretty or anything and it is
a HUGE advantage if you don't have to jump through any hoops to get it
to run on different platforms.

Yes, I don'tthink that's limited to scientists either. One way to slap
a basic GUI on something is to embed a web server in it, or run it as a
CGI, so the user connects to it with a browser. I think most
programmers are familiar with that idea, that GUI functionality doesn't
have to be slick in order to be useful. Other times, you don't want a
browser involved, and tkinter works fine for that. I've always found
tkinter adequate for the (not terribly slick) applications I've written
with guis. I can understand it's only good for relatively rudimentary
apps, but that's sufficient for lots of things.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,796
Messages
2,569,645
Members
45,369
Latest member
Carmen32T6

Latest Threads

Top