GUIs - A Modest Proposal

geremy condra debatem1 at gmail.com
Tue Jun 8 21:12:05 EDT 2010


On Tue, Jun 8, 2010 at 4:46 PM, Steven D'Aprano
<steve at remove-this-cybersource.com.au> wrote:
> On Tue, 08 Jun 2010 15:40:51 -0700, geremy condra wrote:
>
>> On Tue, Jun 8, 2010 at 3:09 PM, Lie Ryan <lie.1296 at gmail.com> wrote:
>
>>> Nobody complains that python included a regular expression engine in
>>> its standard distribution; so why complain that python included a Tcl
>>> expression engine in its standard distribution.
>>
>> This is a silly argument.
>>
>> REs are not full programming languages, even from a theoretical point of
>> view,
>
> True, but some theoretical extension to REs could be. If I've understood
> correctly, Perl's regexes aren't actually regular expressions any more
> (they're a superset) and might even be Turing Complete.

I hereby theorize an extension to python that allows it to cook toast.
Therefore, python is a toaster.

> In any case, the point is not that you can or can't write your entire
> application using a RE. The point is that regexes are a mini-language, a
> DSL, not written directly in Python.

So is the string formatting mini-language. I wouldn't get all wrapped
up in the idea that its ok to include anything that can be called a
language just because we have RE support.

>> aMSN is written in Tcl, as wikipedia would have told you, and
>> having to depend on the tools of another language to get commonly
>> desired functionality is not a good thing for a programming language.
>
> I don't see why you think so. Python is specifically designed to be a
> glue language, to bring together functionality from disparate components
> written in other languages and provide a user-friendly language around
> them. Fundamentally, what's the difference between these?

I didn't argue that Tcl is bad. I argued that a dependency on it is
bad for python. Would you argue that Python should ship with
Perl and Java because there are best-of-breed tools in those
languages and python could leverage that? Of course not.

> * CPython relies on Tk/Tcl for a GUI

Unfortunately true.

> * CPython relies on a C library for regular expressions

Irrelevantly true.

> * IronPython relies on the .Net environment for everything

Since .Net (effectively) depends on Windows, I suggest that
IronPython should ship with Windows as well. After all, many
languages depend on the operating system- why should it be
so much worse to ship with one?

> * Jython relies on Java libraries for many things

See above.

> I don't see why that first one is so much worse than the others. Sure, it
> adds an extra dependency to installing Python for GUI programming, but
> that's no different to any other GUI toolkit: PyQt has Qt as a
> dependency, PyGtk has Gtk as a dependency, etc. (I trust you're not
> suggesting that every language needs to create its own fully-independent
> GUI toolkit that talks directly to the hardware!)

But we don't have any of those in the standard library.

> What does it matter that Tk is Turing Complete and Qt or Gtk aren't?

I wouldn't support including either of the above either, but it matters
because it's a top-ten programming language that has to bootstrap
its way into usefulness in a common part of the field in a pretty
unclean way.

> In any case, if you consider Tkinter is harmful, don't use it. It isn't
> like GUI programming in Python relies on it, there are alternatives.

You won't hear an argument out of me about pulling it out or leaving
it in- I think it was a bad decision to depend on it, but that it's too
late now and that's that.

Geremy Condra



More information about the Python-list mailing list