---------- Forwarded message ----------
From: Kevin Walzer <k...@codebykevin.com>
To: pytho...@python.org
Cc:
Date: Sat, 18 May 2013 11:32:04 -0400
Subject: Re: Future standard GUI library
Hello,
On 5/18/13 10:03 AM, Beinan Li wrote:
I know this may sound a silly question because no one can see the
future. But ...
Do you think tkinter is going to be the standard python built-in gui
solution as long as python exists?
I don't see any significant clamoring among the Python core developers to make a change.
I couldn't help but wonder if wx or PySide receives better py2 and py3
support, or anything else that prevent
them from getting into the standard python distributions, whether or not
this scene could start to shift ...
I am not going to engage in the old UI toolkit flame ware; I will limit myself to factual observations and a few opinions about Tkinter without placing it against other toolkits.
Python has the PEP process for suggesting changes to the core language and libraries. Changing the default UI toolkit would require someone to submit a proposal, get it approved, provide the implementation, and commit to maintaining the implementation over the long term. You propose it, you own it.
Thus far no one has done this. I would think the only person who would be in a position to propose wxPython would be Robin Dunn since he is the primary copyright holder, and to my knowledge he has never done so. As for Pyside, it was not part of the transition of Qt from Nokia to Digia, and so it appears to be orphaned. PyQt might be an alternative, but I don't think Phil Thompson would ever submit it, as it would likely affect his livelihood.
Given these facts, it's safe to say that Tkinter will remain the default GUI toolkit in the stdlib for some years to come.
I believe this "which one of tkinter, wx, qt, is the best gui toolkit
for python" flame war has been going on
for ages. I love the fact that python ships a built-in gui solution
which makes shipping a pure-python desktop
application a viable choice. But tkinter does not appear to be the most
time-saving way to write a gui app.
The layout designer support, for one, is next to zero. I tried many
3rd-party designers
and loved PAGE (http://page.sourceforge.net) for a few minutes, then
came the author's comment:
PAGE strikes me as an odd choice for a Python developer to develop a Tk UI. It's a descendent of the old Visual Tcl tool, and is run from Tcl and not Python. VTcl was always famous for producing a huge pot of spaghetti UI code that couldn't be easily modified outside the tool. I have also tried many Tk UI tools including VTcl, SpecTcl, and the orphaned tool from ActiveState, and have concluded that writing my own code is both simpler and faster. As always, your mileage may vary.
"For release 4.0, I spent about two months working with the “Theme” part
of Ttk and have had only partial success. I now believe that the “Theme”
part of Ttk is really a very poor piece of software at all levels -
concept, implementation, and especially documentation. My guess is if it
had been well documented it would have been recognized by even the
author as junk. I find it hard to believe that the people who control
Tcl/Tk allowed it in the code base. I continue to support ttk because of
the paned window, notebook and treeview widgets."
On 23 May 2013 03:39, "llanitedave" <llani...@veawb.coop> wrote:
>
> On Wednesday, May 22, 2013 7:24:15 AM UTC-7, Chris Angelico wrote:
> > On Wed, May 22, 2013 at 11:42 PM, Wolfgang Keller <feli...@gmx.net> wrote:
...
> > there's another option that is available to every platform and
> > (practially) every high level language: the web browser. Make your app
> > serve HTTP and do up your UI in HTML5/CSS3 - your facilities are
> > pretty extensive. Plus you get networking support for free! Obviously
> > this option isn't for everyone, but don't discount it out of hand.
> >
> > ChrisA
>
> I've been thinking about that myself for some future app ideas. If you have a stand-alone app working from your web browser, don't you need an embedded web server to utilize the file system? Is a system like Django for an app overkill? Or is its embedded development server underkill for a single-user browser-based application?
> --
> http://mail.python.org/mailman/listinfo/python-list
JavaScript has this:
It's a node.js server app serving a folder of plain old HTML files to a chrome embedded browser.
You can code in a node.js server using anything you like, serve requests for your client app (or use the server code directly, you can just put the functions you would like to share with the client in the window object), etc.
I'm using it for a peer to peer configurable application. To do that I serve up the web application for me and my peers (by using a regular server instead of the fake server it comes with), and the browser is just a client which can connect wherever I want it to.
Someone should fork this and make it work in python.
For remote content you just need the 'urllib2' module or something like 'requests' module to get the data.
----------------------------------------
> Date: Wed, 22 May 2013 19:31:55 -0700
> Subject: Re: Future standard GUI library
> From: llani...@veawb.coop
[...]
>
> I've been thinking about that myself for some future app ideas. If you have a stand-alone app working from your web browser, don't you need an embedded web server to utilize the file system? Is a system like Django for an app overkill? Or is its embedded development server underkill for a single-user browser-based application?
It would be way more practical to have an embedded browser. Appjs doesn't even occupy a port on the client. We could totally benefit from that. Django applications practically make themselves.
You don't! If your app needs local content just use a regular open() (or your browser) to read the files and render them as you see fit.
For remote content you just need the 'urllib2' module or something like 'requests' module to get the data.
----------------------------------------
> Date: Wed, 22 May 2013 19:31:55 -0700
> Subject: Re: Future standard GUI library
> From: llani...@veawb.coop
[...]
>
> I've been thinking about that myself for some future app ideas. If you have a stand-alone app working from your web browser, don't you need an embedded web server to utilize the file system? Is a system like Django for an app overkill? Or is its embedded development server underkill for a single-user browser-based application?
Please give me an example of a "suitable transport layer for a RPC protocol".
Interoperability is much more expensive than efficiency. That's why you won't get the most optimized protocol for speed or size.
> - It must provide connections
What do you mean?
> - For asynchronous programming it must provide for callbacks
> No RPC-over-HTTP protocol that I know of does this.
XHR implements asynchronous callbacks over HTTP.
> Besides, no one needs RPC just to logically separate GUI and
> application layer. And between application logic and database, you use
> the native database API for the RDBMS in question, of course.
>
> The whole idea to centralise application logic (and even the GUI with
> "web applications") is backwards, it dates from the 70s/early 80s when
> desktop computers weren't able to run application logic. Today, to make
> an application responsive (minimise latencies and maximise throughput),
> it's just obvious to *de*-centralise as much as possible. In fact,
> if Postgres-R was available for production, you could even distribute
> the persistence and run an entirely "serverless" application.
"web applications" is so nowadays! All of my recent software development projects (last 10 years) focus on business processes integration.
In all of them the BLL (Business Logic Layer), or "application logic", is run on server side (as a controller in MVC) due to security and performance reasons.
None of my clients want their business rules and internal workflows exposed, so the old ways of the 70/80's ain't gonna change.
> Sincerely,
>
> Wolfgang
> --
> http://mail.python.org/mailman/listinfo/python-list