GUIs - A Modest Proposal

Stephen Hansen apt.shansen at gmail.com
Tue Jun 8 01:55:41 EDT 2010


On Mon, Jun 7, 2010 at 10:34 PM, Rick Johnson <rantingrick at gmail.com> wrote:

> Hi Stephen,
>
> Great to hear from you. You're right about the powers that be, and i agree!
> I was just being a bit theatrical (i've been known to do that from time to
> time...Sorry.  ;-).
>
> I know one of at least is interested enough to put his money where his
>> mouth is and has worked on implementing something as such -- PyGUI. I think,
>> personally, that its about the only hope you have of ever getting a
>> Tkinter-replacement in. No one else seems willing to do the work. Until
>> someone does, its just dead on arrival. The entire idea.
>>
>
> Yes, i just downloaded PyGUI and it looks very promising! Greg has a great
> vision for his GUI and his very pythonic API is what we need in a GUI!
>
> I know Wx is full featured but for the stdlib we really need a meat and
> bones GUI for getting newbies up and running and also for the usability of
> Python out-of-the-box. Tkinter has had many years to improve but nobody
> wants to improve it and i think wrapping a Tcl interpretor was OK in
> Python2.x but we need to bring Python's stdlib GUI into the future.
>
> Greg has the vision, the clear set goals, and pretty nice starting code
> base. And lets not forget he IS actually "somebody" in this community who
> has influence -- unlike me ;). I think if we can get behind his effort this
> may turn out to be a good change for Python...?. I am willing to write some
> code. And i would be quite excited to be a contributor on this project.
>
> What do you think Stephen?
>


The problem is purely motivation.

There are only 24 hours in a day; from 9 to 5, my boss owns my time.
Sometimes that actually does mean I contribute to open source projects. Not
often, but sometimes. More often, it means I participate in communities,
giving back in ways I can afford-- answering questions, and such. But
generally speaking, those 8 hours don't belong to me.

Then there's the rest of the time.

It's divided between social commitments, and certain projects which I have a
long establishment with and commitments I want to uphold. Then there's the
downtime goofing off I need to maintain mental health.

In pure theory, do I think Python would benefit slightly from a "simple" GUI
available in the stdlib and out of the box, able to do many of the basics
people need? Sure. Do I find tkinter ugly and unpythonic and that such a
truly pythonic simple GUI would be nice? Sure.

However, there are some caveats.

I maintain its impossible to do "pythonic" and "really good UI".

There's a *reason* wx, qt, and such, are complicated. Real, modern,
intuitive, immersive, superbly clean, excellently functional user interfaces
that apps do -- require a complex model that does not sift down well into
'idle, easy python code'. That's not to say all programs with wx/qt are of
that caliber-- not at all. However! They provide the power you need to be
truly great UI's.

A simple UI layer, can only be ... simple. Useful, yes. However, simplicity
stands in direct opposition to comprehensive capability. Its impossible to
find a middle ground between the two: wx and qt *are* an example of an
attempt to find such a  middle ground.

My problem with a "simple GUI" in the stdlib is therefore twofold. One: I'd
never use it. I acknowledge new users would be helped in initial adoption,
but I'd never use it. Even for smaller projects. I now know wx, so, I can do
wx very fast. I can adapt and adjust it to function. And I know how to bend
it to my will if I want to do something which goes beyond its simplicity
imposes.  Two: I can't shake the feeling that it will ultimately weaken
these very newbies you're trying to help. They'll make an app, with this
simple UI, and everything will seem nice.

And their app will mature. And one day, its simply no longer supportable on
that platform, and they have to rewrite it. Rewriting is the death of
projects. I firmly believe there is *no* way to make a Pythonic, simple,
accessible UI system which is *comprehensive*, complete, fully-functional
and fully-accessible. I welcome someone smarter then I to prove me wrong.

Both wx and qt have some things to make it a lot easier to deal with. QT is
more mature in that, with its QT Designer. WX has several tools for
generating XRC UI's, so people can lay out a user interface in WX without
writing code. But its still more difficult. Still, though: although I fully
admit these platforms are more difficult and complicated, and although a
very simple thing may be wonderful for them... I wonder if we're helping
them, instead of helping them learn platforms which will /really/ open them
up to fully developing rich, modern applications.

Either way: I sympathize with the theory of creating such a simple-GUI for
stdlib inclusion. I applaud those who will do so, albeit with some
reservation. I have no motivation at all to contribute, because I feel no
personal need, and no time for charity work in this capacity. I don't have
enough time for charity, so I donate cash to Kiva(*) instead :)

--S

* P.S. I find Kiva so strangely satisfying. Every couple/few months, I have
about 20-ish in loans returned, and I impatiently donate 2-5 bucks to get it
up to 25, and give it out to someone else. And somehow it feels like I'm
giving free money. Cuz the original donations, I wrote off in my head. So as
time goes on, I give dimes and it contributes to real people's lives-- from
repayments other people have made to previous dimes I've made. Its sorta
awesome. Plus! There's a Pythonista team.

--S
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100607/062c68b9/attachment-0001.html>


More information about the Python-list mailing list