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!newsgate.cistron.nl!newsgate.news.xs4all.nl!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.010 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'broken': 0.04; 'subject:Python': 0.06; 'suppose': 0.07; 'bits': 0.09; 'deprecated': 0.09; 'lawrence': 0.09; 'migration': 0.09; 'url:blog': 0.10; 'cc:addr:python-list': 0.11; 'python': 0.11; 'jan': 0.12; '2.7': 0.14; '3.3,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'highlight': 0.16; 'inclined': 0.16; 'migration.': 0.16; 'removed,': 0.16; 'then?': 0.16; 'wrote:': 0.18; '(the': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; '2.x': 0.24; 'fixed.': 0.24; 'unicode': 0.24; 'cc:2**0': 0.24; 'header:In-Reply-To:1': 0.27; 'fixed': 0.29; 'am,': 0.29; 'statement': 0.30; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; 'easier': 0.31; 'breaking': 0.31; 'division': 0.31; 'once,': 0.31; 'operators': 0.31; 'stuff': 0.32; 'sense': 0.34; 'skip:_ 10': 0.34; 'subject:the': 0.34; "i'd": 0.34; "can't": 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'surely': 0.36; 'possible': 0.36; 'should': 0.36; 'two': 0.37; 'does': 0.39; 'moving': 0.39; 'major': 0.40; 'release': 0.40; 'how': 0.40; 'even': 0.60; 'break': 0.61; 'first': 0.61; 'complete': 0.62; 'making': 0.63; 'more': 0.64; 'forward': 0.65; 'biggest': 0.67; 'money': 0.72; 'obvious': 0.74; '2.8': 0.84; 'nonsense.': 0.84; 'score.': 0.84; 'url:posts': 0.84; 'lift': 0.91; 'obvious,': 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; bh=0wjxd+k2db93CY5kRzH2ulI8mEAEDX2RGPYJBu4E5Xg=; b=VeIdOGCRM+oiMvHWq1UN6/lw9BOuP8uluJGPukl6PPo7CU59FtQkL4EeAnXvYynqUa vyZoYmKOjKIL6mvYOlhZOzJLDv76xL/EEzByJvGQWiZBAQK374lIjd7DbqCyBnwRtqG8 GDl5g6Vth3R9PIs40Q59JRaKeTtfZCLnKx4yfCXridwPYgOAvWnUAabMfLXUqxAGefJ/ ZVoLRAtglU98MPpv2KwNI1TKyzOLhzyWEYQZRP5NK5EJiUGl6PF8euh2YXdeK9MlQLFA RhVxxoQKCmlTFl5o6c+m7vXoHjccoCTagECbv3q3Q3WkQKDaXobw0t/NhvgGhiR1vpzV Oezg== MIME-Version: 1.0 X-Received: by 10.68.162.66 with SMTP id xy2mr10892623pbb.46.1389053960960; Mon, 06 Jan 2014 16:19:20 -0800 (PST) In-Reply-To: References: Date: Tue, 7 Jan 2014 11:19:20 +1100 Subject: Re: the Gravity of Python 2 From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 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: 34 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1389053970 news.xs4all.nl 2857 [2001:888:2000:d::a6]:60534 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:63381 On Tue, Jan 7, 2014 at 6:26 AM, Mark Lawrence wrote: > http://blog.startifact.com/posts/python-2-gravity.html > > "A Way Forward - How to go forward then? I think it makes sense to work as > hard as possible to lift those Python 2 codebases out of the gravity well." > > I think this is complete nonsense. There's only been five years since the > first release of Python 3. Surely much more time should be made available > for people using Python 2 to plan for a migration? """And to make it even more obvious, we need Python 2.x releases where the deprecated stuff is removed, incrementally. Breaking code is making it as obvious as you can get! But you don't want to break it all at once, because then people will be inclined to give up before they even start.""" Suppose there's a Python 2.8 that breaks just some of the things that might break in 2.7->3.3 migration. What does it achieve? 1) Everything that has to be fixed before moving onto 3.3+ will still need to be fixed. 2) Instead of ONE code-breaking shift with a major version number to highlight it, there are now TWO code-breaking shifts. Can we get a run-down of everything that actually must be broken in 2.7 -> 3.3, that can't be backported via __future__, so we can start cherry-picking which bits to break in 2.8? The biggest one is going to be Unicode strings, for a large number of people (the print statement and division operators can be __future__'d, lots of other stuff got backported into 2.7). I'd be prepared to bet money that that one will NOT be broken in 2.8, meaning that it achieves nothing on that score. So how much easier will the migration actually be? ChrisA