Path: csiph.com!usenet.pasdenom.info!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!ecngs!feeder2.ecngs.de!novso.com!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'say,': 0.05; 'subject:Python': 0.06; 'lines,': 0.07; 'tkinter': 0.07; 'utf-8': 0.07; 'string': 0.09; 'alter': 0.09; 'decision.': 0.09; 'mixed': 0.09; 'subset': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'assigned,': 0.16; 'blocks': 0.16; 'choice,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'inclined': 0.16; 'letting': 0.16; 'non-ascii': 0.16; 'none.': 0.16; 'obviously,': 0.16; 'phase,': 0.16; 'subject:GUI': 0.16; 'tcl': 0.16; 'tkinter.': 0.16; 'written)': 0.16; 'wrote:': 0.18; 'users.': 0.18; 'bit': 0.19; '(but': 0.19; 'slightly': 0.19; 'cc:addr:python.org': 0.22; 'choices': 0.24; 'unicode': 0.24; 'decide': 0.24; 'initial': 0.24; 'cc:2**0': 0.24; 'sort': 0.25; "i've": 0.25; 'push': 0.26; 'right.': 0.26; 'second': 0.26; 'least': 0.26; 'header:In-Reply-To:1': 0.27; 'specifically': 0.29; 'chris': 0.29; 'external': 0.29; 'character': 0.29; 'generally': 0.29; '(like': 0.30; 'characters': 0.30; 'evaluation': 0.30; 'restrict': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'getting': 0.31; "d'aprano": 0.31; 'font': 0.31; 'forces': 0.31; 'steven': 0.31; 'text': 0.33; '(including': 0.33; 'maybe': 0.34; 'problem': 0.35; 'agree': 0.35; 'possible.': 0.35; 'problem.': 0.35; 'something': 0.35; 'monday': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'really': 0.36; 'choosing': 0.36; 'should': 0.36; 'too': 0.37; 'easily': 0.37; 'pm,': 0.38; 'rather': 0.38; 'ability': 0.39; 'bad': 0.39; 'use.': 0.39; 'how': 0.40; 'truly': 0.60; 'most': 0.60; "you're": 0.61; 'first': 0.61; 'back': 0.62; "you'll": 0.62; 'more': 0.64; 'chance': 0.65; 'talking': 0.65; 'between': 0.67; 'frustrated': 0.68; 'evaluate': 0.72; '2015': 0.84; 'costly': 0.84; 'ships': 0.84; 'provide,': 0.91; 'subject:Best': 0.91; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type:content-transfer-encoding; bh=0Ea6tPpVEQvoZ2WM39lBL1Lool1MRSR9G7sgZp4DoWM=; b=WDEqfcrlu2HJY5x6TSYwS/xrLSK9hQv32vJOjBNXYBQQGqrmYhS7twxYPY4OxwuYyt N9cyIdyAcykP3kBKJ5114lyW9FsLJo00mCdrtk4tN+QR2aBoH0lsDN3NGSV9loiSA9CU MND07xZYy8Tj2zG5HAFKgHLpoEKSST/kM1z6MUxeEfyAOrvwPatK0CQeuIPKYM/yUrzL D98oWiucQc8ACfVF1wdFfbBRmesNhS/teqCClZi9xqk0AuLNAlkRarqetqRv1d7Vti44 qIIBSs3Jp+ABShpIh92uI3lZOk2oxpCqXvcpQiXNfAfxrCYcAitdopO9No+XMsVzfBAa tOtA== MIME-Version: 1.0 X-Received: by 10.43.39.1 with SMTP id tk1mr16202271icb.26.1430199155303; Mon, 27 Apr 2015 22:32:35 -0700 (PDT) In-Reply-To: <553f1630$0$12909$c3e8da3$5496439d@news.astraweb.com> References: <87h9s311r6.fsf@Equus.decebal.nl> <553cffc2$0$12998$c3e8da3$5496439d@news.astraweb.com> <85d22qk54u.fsf@benfinney.id.au> <553f1630$0$12909$c3e8da3$5496439d@news.astraweb.com> Date: Tue, 28 Apr 2015 15:32:35 +1000 Subject: Re: Best GUI for Python From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 53 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1430199163 news.xs4all.nl 2880 [2001:888:2000:d::a6]:51678 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:89479 On Tue, Apr 28, 2015 at 3:10 PM, Steven D'Aprano wrote: > On Monday 27 April 2015 17:22, Chris Angelico wrote: > >> This is a problem that won't just "go away". As more SMP blocks get >> assigned, more people will start using them, and get frustrated at >> your program for not letting them. (And why should an end user need to >> know the difference between =F0=9F=98=83 and =E2=8D=A5, that the second = one works and >> the first doesn't?) Unless you're willing to wait for a Python that >> ships Tcl 9, Tkinter is a choice that restricts your end users. > > I'm not really arguing with you, just giving a slightly difference of > emphasis... > > I don't think that failure to support the SMPs is a deal-breaker. Obvious= ly, > if you specifically need some subset of Unicode in the SMPs, say Phoenici= an, > then it may be, but I'm just talking about general use. Given the general= ly > poor support for non-ASCII characters many applications provide, any Unic= ode > support is better than none. I agree that it isn't _in itself_ a deal-breaker; it's a choice, but most choices restrict you, the programmer. Choosing to use Python rather than C restricts what you can do easily (but so would the converse choice); choosing to use SQLite3 restricts your ability to alter tables; choosing to use PyGTK forces you to include an external dependency. But choosing to use Tkinter restricts *your users* to BMP-only. That's a consideration that takes a bit more thought to evaluate; how bad is it? You can decide on the cost of a UTF-8 string type by figuring out how often you need to know about character lengths, but how can you know the cost of a UCS-2 font renderer? That's why I would be inclined to avoid Tkinter. Not because UCS-2 is a fundamental deal-breaker, but because it's too hard to truly evaluate the merits of the decision. Maybe external deps are just too costly (like for Idle), or maybe you just detest all the other options, and so maybe you'll end up coming back to Tk; but at the initial evaluation phase, I would push for something else if at all possible. There's often some sort of problem with non-ASCII text in a program that wasn't built for it. A lot of programs I use (including some that I've written) have issues with RTL text - particularly, issues with mixed RTL and LTR text on the same lines, which is a pretty hairy problem. But at least if a program uses Python 3, it has a good chance of getting most of it right. As you say, that's a huge advantage over so many applications. :( ChrisA