Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.albasani.net!news.stack.nl!newsfeed.xs4all.nl!newsfeed3a.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.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:: [': 0.04; 'yet.': 0.04; 'interpreter': 0.05; 'subject:Python': 0.06; '(using': 0.07; 'python3': 0.07; 'see:': 0.07; 'suppose': 0.07; 'dan': 0.09; 'migration': 0.09; 'sure,': 0.09; 'yeah,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'language.': 0.14; "wouldn't": 0.14; ':-/': 0.16; 'cc:name:python list': 0.16; 'interpreter,': 0.16; 'merely': 0.16; 'ported': 0.16; 'route,': 0.16; 'subject:Dev': 0.16; 'subject:edition': 0.16; 'url:appspot': 0.16; 'url:svn': 0.16; 'ignore': 0.16; 'language': 0.16; 'wrote:': 0.18; 'code.': 0.18; 'thu,': 0.19; 'subject:] ': 0.20; 'written': 0.21; 'seems': 0.21; 'cc:addr:gmail.com': 0.22; 'email addr:gmail.com>': 0.22; 'saying': 0.22; 'cc:addr:python.org': 0.22; '2.x': 0.24; "aren't": 0.24; 'url:moin': 0.24; "haven't": 0.24; "i've": 0.25; '>': 0.26; 'purposes': 0.26; 'header:In- Reply-To:1': 0.27; 'point': 0.28; 'am,': 0.29; "doesn't": 0.30; 'cc:2**2': 0.30; 'change,': 0.30; 'dec': 0.30; 'important.': 0.30; 'moved': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'work.': 0.31; 'code': 0.31; 'url:wiki': 0.31; 'usually': 0.31; '3.x': 0.31; 'bad.': 0.31; 'gather': 0.31; 'libraries': 0.31; 'perl': 0.31; 'compatible': 0.32; 'languages': 0.32; 'option': 0.32; 'run': 0.32; 'url:python': 0.33; 'running': 0.33; 'updated': 0.34; 'core': 0.34; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'dies': 0.36; 'url:org': 0.36; 'so,': 0.37; 'too': 0.37; 'two': 0.37; 'skip:& 10': 0.38; 'pm,': 0.38; 'anything': 0.39; 'skip:& 20': 0.39; 'either': 0.39; 'how': 0.40; 'most': 0.60; 'valuable': 0.63; 'more': 0.64; 'to:addr:gmail.com': 0.65; 'world': 0.66; 'believe': 0.68; 'fulfill': 0.68; 'day': 0.76; 'alone.': 0.84; 'subject:survey': 0.84; 'hate': 0.91; 'migrating': 0.91; 'incredibly': 0.96; 'wholesale': 0.96 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 :cc:content-type; bh=oXVPRaDbUB+TBtMoIEC0AuRGSVM35WNMkuqKwpKJirA=; b=xwvStEgSsjhFAXyOVflqQiSIRPLujF109h0xiV6RpGjhYsCpWWySbx3jiDYMobnDHQ L57xoaftJywcRVHxAGUqYb31W5kI8zpMzLapjLIVlBLAbSv7HQcKV2hwQeCaQMAr0J/W bYmmrePMOSOXTD5fzNLceX4VgKsmTaPSax5/pU5Ux5uiuLKBVlx+nlVdSI6zXxw9IZIb za+G3f3unq3fq5Jw1IBCYsyJKd/F6HI51fDz8KZ3L94p0843LHsYNdILxCGhINrfCHoR 6pbsh+GFmtgsrEo1Y+rEtHnk3v604oYqPVAJM/kCS6ZoOOJUvQhNjolY2sLUgnzvQ2rg F7AQ== MIME-Version: 1.0 X-Received: by 10.60.50.137 with SMTP id c9mr10902214oeo.83.1418408656034; Fri, 12 Dec 2014 10:24:16 -0800 (PST) In-Reply-To: References: Date: Fri, 12 Dec 2014 10:24:15 -0800 Subject: Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition From: Mark Roberts To: Dan Stromberg Content-Type: multipart/alternative; boundary=001a11c2deb816e1c2050a090075 Cc: Dan Stromberg , Python List , python-dev 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: 122 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1418408664 news.xs4all.nl 2893 [2001:888:2000:d::a6]:42269 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:82461 --001a11c2deb816e1c2050a090075 Content-Type: text/plain; charset=UTF-8 So, I'm more than aware of how to write Python 2/3 compatible code. I've ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at work. I'm also aware of how much writing 2/3 compatible code makes me hate Python as a language. It'll be a happy day when one of the two languages dies so that I never have to write code like that again. However, my point was that just because the core libraries by usage are *starting* to roll out Python 3 support doesn't mean that things are "easy" or "convenient" yet. There are too many libraries in the long tail which fulfill semi-common purposes and haven't been moved over yet. Yeah, sure, they haven't been updated in years... but neither has the language they're built on. I suppose what I'm saying is that the long tail of libraries is far more valuable than it seems the Python3 zealots are giving it credit for. Please don't claim it's "easy" to move over just because merely most of the top 20 libraries have been moved over. :-/ -Mark On Thu, Dec 11, 2014 at 12:14 PM, Dan Stromberg wrote: > On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts wrote: > > I disagree. I know there's a huge focus on The Big Libraries (and > wholesale > > migration is all but impossible without them), but the long tail of > > libraries is still incredibly important. It's like saying that migrating > the > > top 10 Perl libraries to Perl 6 would allow people to completely ignore > all > > of CPAN. It just doesn't make sense. > > Things in the Python 2.x vs 3.x world aren't that bad. > > See: > https://python3wos.appspot.com/ and > https://wiki.python.org/moin/PortingPythonToPy3k > http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code > to run on 2.x and 3.x) > > I believe just about everything I've written over the last few years > either ran on 2.x and 3.x unmodified, or ran on 3.x alone. If you go > the former route, you don't need to wait for your libraries to be > updated. > > I usually run pylint twice for my projects (after each change, prior > to checkin), once with a 2.x interpreter, and once with a 3.x > interpreter (using > http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but > I gather pylint has the option of running on a 2.x interpreter and > warning about anything that wouldn't work on 3.x. > --001a11c2deb816e1c2050a090075 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
So, I'm more than aware of how to write Python 2/3 com= patible code. I've ported 10-20 libraries to Python 3 and write Python = 2/3 compatible code at work. I'm also aware of how much writing 2/3 com= patible code makes me hate Python as a language. It'll be a happy day w= hen one of the two languages dies so that I never have to write code like t= hat again. However, my point was that just because the core libraries by us= age are *starting* to roll out Python 3 support doesn't mean that thing= s are "easy" or "convenient" yet. There are too many li= braries in the long tail which fulfill semi-common purposes and haven't= been moved over yet. Yeah, sure, they haven't been updated in years...= but neither has the language they're built on.

I su= ppose what I'm saying is that the long tail of libraries is far more va= luable than it seems the Python3 zealots are giving it credit for. Please d= on't claim it's "easy" to move over just because merely m= ost of the top 20 libraries have been moved over. :-/

-Mark

On Thu, Dec 11, = 2014 at 12:14 PM, Dan Stromberg <drsalists@gmail.com> wrot= e:
On Thu, Dec 11, 2014 = at 11:35 AM, Mark Roberts <wizzat@gm= ail.com> wrote:
> I disagree. I know there's a huge focus on The Big Libraries (and = wholesale
> migration is all but impossible without them), but the long tail of > libraries is still incredibly important. It's like saying that mig= rating the
> top 10 Perl libraries to Perl 6 would allow people to completely ignor= e all
> of CPAN. It just doesn't make sense.

Things in the Python 2.x vs 3.x world aren't that bad.

See:
https://pytho= n3wos.appspot.com/ and
https://wiki.python.org/moin/PortingPythonToPy3k
http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (w= riting code
to run on 2.x and 3.x)

I believe just about everything I've written over the last few years either ran on 2.x and 3.x unmodified, or ran on 3.x alone.=C2=A0 If you go<= br> the former route, you don't need to wait for your libraries to be
updated.

I usually run pylint twice for my projects (after each change, prior
to checkin), once with a 2.x interpreter, and once with a 3.x
interpreter (using
http://stromberg.dnsalias.org/svn/this-pylint/trunk/this= -pylint) , but
I gather pylint has the option of running on a 2.x interpreter and
warning about anything that wouldn't work on 3.x.

--001a11c2deb816e1c2050a090075--