Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4.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.016 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'argument': 0.05; 'interpreter': 0.05; 'subject:Python': 0.06; 'ascii': 0.09; 'back.': 0.09; 'broke': 0.09; 'bytes.': 0.09; 'default.': 0.09; 'dependency': 0.09; 'forcing': 0.09; 'raises': 0.09; 'developer': 0.10; 'python': 0.11; '2.7': 0.14; 'broken.': 0.16; 'enough.': 0.16; 'permissive': 0.16; 'ported': 0.16; 'reason.': 0.16; 'robust.': 0.16; 'stepping': 0.16; 'subject:More': 0.16; 'subject:Unicode': 0.16; 'code.': 0.18; 'bit': 0.19; '3.0': 0.19; 'else,': 0.19; 'written': 0.21; 'seems': 0.21; 'coding': 0.22; 'features,': 0.24; "haven't": 0.24; 'least': 0.26; 'world,': 0.26; 'header:In-Reply-To:1': 0.27; 'topic': 0.29; 'ease': 0.30; 'errors': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; 'forces': 0.31; 'libraries': 0.31; 'option)': 0.31; 'releasing': 0.31; 'subject:About': 0.31; 'probably': 0.32; 'run': 0.32; 'linux': 0.33; 'everyone': 0.33; 'running': 0.33; 'becomes': 0.33; 'totally': 0.33; "i'd": 0.34; 'could': 0.34; 'something': 0.35; 'one,': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'leads': 0.36; 'next': 0.36; 'operating': 0.37; 'easily': 0.37; 'being': 0.38; 'skip:& 10': 0.38; 'improving': 0.38; 'to:addr:python-list': 0.38; 'rather': 0.38; 'little': 0.38; 'anything': 0.39; 'expect': 0.39; 'received:74.125': 0.39; 'moving': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'either': 0.39; 'users': 0.40; 'major': 0.40; 'release': 0.40; 'eventually': 0.60; 'subject:"': 0.60; 'new': 0.61; 'further': 0.61; 'first': 0.61; 'back': 0.62; 'design,': 0.64; 'more': 0.64; 'taking': 0.65; 'holding': 0.65; 'managing': 0.66; 'reply': 0.66; 'natural': 0.68; 'default': 0.69; 'anyone.': 0.74; 'day': 0.76; 'glad': 0.83; 'defensive': 0.84; 'denial.': 0.84; 'hardly': 0.84; '\xa0but': 0.84; '\xa0of': 0.84; 'thing,': 0.91; 'choice.': 0.93; 'have.': 0.93 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:to :content-type; bh=Z5VstONpe/76JHfJbJbUPQW6lTjhaRtqITj31koRyzQ=; b=zNvJX1mszs92tiKJuxpppbpxzyW4d8lMkrbm86RYN1tgEE46AEx5m8Okb/poJ26Xfv 2bccCzk+eGZZ3iq+T0htU2lK29vL0Te8eC1taOmQ5DliNWJdvHaC3VYARNRg1Yq9jn/4 frGTzcNRA0Q5VdneNcTsxU3LM4jctM1KtbDxrEVj+IwOEijuwzHxFMdmuJobKGXeVYDN FhjD+LuW/Z3uzvmb8RNXfCK8giCoRx4QkzrQucj3IbKO9SM99Sg3YG4anF/RO2ssUwlJ IT/b6GI0RDwl2sg2lmNsG4113waBvo9/aRFuOqWawSH1NJjb0tbUxtn40KySADCDHODr EUgg== MIME-Version: 1.0 X-Received: by 10.14.47.130 with SMTP id t2mr89435888eeb.12.1389048086301; Mon, 06 Jan 2014 14:41:26 -0800 (PST) In-Reply-To: References: <201401060932.35410.gheskett@wdtv.com> <201401061617.06746.gheskett@wdtv.com> Date: Mon, 6 Jan 2014 22:41:26 +0000 Subject: Re: "More About Unicode in Python 2 and 3" From: Nicholas Cole To: Python Content-Type: multipart/alternative; boundary=001a1132f112c28f7304ef54f5b6 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 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: 99 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1389048129 news.xs4all.nl 2965 [2001:888:2000:d::a6]:43177 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:63362 --001a1132f112c28f7304ef54f5b6 Content-Type: text/plain; charset=ISO-8859-1 I hardly know which of the various threads on this topic to reply to! No one is taking Python 2.7 away from anyone. It is going to be on the net for years to come. Goodness! I expect if I wanted to go and download Python 1.5 I could find it easily enough. Like everyone else, when Python 3 came out I was nervous. A lot of my code broke - but it broke for a good reason. I had been being cavalier about strings and ASCII and bytes. A lot of my code was working by accident rather than by design, or because my users had never fed it anything that would make it fall over. Of course, my first reaction was a defensive one, but once I had got over that and got my head around Python 3's view of the world, I was pleased I had. I find writing in Python 3 leads to more robust code. I like the way it forces me to do the right thing, and I like the way it raises errors if I try to get away with something I shouldn't. Going back to Python 2 now feels a bit like stepping back to the seductive and permissive hell of PHP in some ways! If I could be sure that I was coding just for me and not having to support things still running on Python 2, I would move to Python 3.3 and not look back. Except, yes, there are still libraries that haven't made the change....blast! Python 2.7 is there if your software was written to run on the 2 series. I am sure it will either be distributed with (as default or option) major operating systems for some time. I am totally unpersuaded by the argument that 'back porting' more and more into Python 2 will ease the transition. I think it will just use up developer time, and delay further the day when releasing new code for Python 3 only becomes not only reasonable but the natural and default choice. I am really glad to see that at least one distribution of Linux is moving to Python 3 as the default. I'd much rather see developer time spent improving Python 3 than managing a transition. I realised when Python 3.0 came out that eventually I would have to move to Python 3. I spent the next release in a state of denial. But I had years to get used to it, and I'm glad I have. It "feels" more robust. Of course, I haven't ported every little program: but no one is forcing me too! All of these threads are written as if everyone's code is about to be broken. It isn't. But if you want the new features, you need to make a move, and it is probably time to write all new code in Python 3. If there's a dependency holding you back, then there will be a Python 2 interpreter around to run your code. That all seems pretty reasonable and straightforward to me. Nicholas --001a1132f112c28f7304ef54f5b6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I hardly know which of the various threads on this topic to reply to!
<= br>
No one is taking Python 2.7 away from anyone. =A0It is going = to be on the net for years to come. =A0Goodness! I expect if I wanted to go= and download Python 1.5 I could find it easily enough.

Like everyone else, when Python 3 came out I was nervou= s. =A0A lot of my code broke - but it broke for a good reason. =A0I had bee= n being cavalier about strings and ASCII and bytes. =A0A lot of my code was= working by accident rather than by design, or because my users had never f= ed it anything that would make it fall over. =A0Of course, my first reactio= n was a defensive one, but once I had got over that and got my head around = Python 3's view of the world, I was pleased I had. =A0I find writing in= Python 3 leads to more robust code. =A0I like the way it forces me to do t= he right thing, and I like the way it raises errors if I try to get away wi= th something I shouldn't. Going back to Python 2 now feels a bit like s= tepping back to the seductive and permissive hell of PHP in some ways!=A0 I= f I could be sure that I was coding just for me and not having to support t= hings still running on Python 2, I would move to Python 3.3 and not look ba= ck. =A0Except, yes, there are still libraries that haven't made the cha= nge....blast!

Python 2.7 is there if your software was written to run on t= he 2 series. =A0I am sure it will either be distributed with (as default or= option) major operating systems for some time. =A0I am totally unpersuaded= by the argument that 'back porting' more and more into Python 2 wi= ll ease the transition. =A0I think it will just use up developer time, and = delay further the day when releasing new code for Python 3 only becomes not= only reasonable but the natural and default choice.

I am really glad to see that at least one distribution of Li= nux is moving to Python 3 as the default. =A0I'd much rather see develo= per time spent improving Python 3 than managing a transition.
=A0= =A0
I realised when Python 3.0 came out that eventually I would have to move to= Python 3. =A0I spent the next release in a state of denial. =A0But I had y= ears to get used to it, and I'm glad I have. =A0It "feels" mo= re robust. =A0Of course, I haven't ported every little program: but no = one is forcing me too! =A0

All of these threads are written as if everyone's c= ode is about to be broken. =A0It isn't. =A0But if you want the new feat= ures, you need to make a move, and it is probably time to write all new cod= e in Python 3. If there's a dependency holding you back, then there wil= l be a Python 2 interpreter around to run your code. =A0That all seems pret= ty reasonable and straightforward to me.

Nicholas
--001a1132f112c28f7304ef54f5b6--