| Store | Cart

Re: Python 3 is killing Python

From: Kevin Walzer <k...@codebykevin.com>
Tue, 15 Jul 2014 09:57:15 -0400
On 7/15/14, 9:00 AM, Chris Angelico wrote:
> The problem isn't Python 2, nor Python 3, nor even the fact that there> are two Pythons. The problem is that a lot of people don't understand> when to choose one or the other, don't understand what the promises of> support are, and (perhaps worst of all) keep hearing FUD about how> Python 3 is killing Python. And so the confusion perpetuates.> Eventually the world will get past that, but in the meantime, we have> to deal with these sorts of storms-in-teacups from people who simply> cannot comprehend what's going on.

I think it's more than a tempest in a teacup.

The number of language revisions that result in deliberate, code-level 
incompatibility out there is pretty small. People rightly expect that 
code written for version 2.x of a language will continue to work with 
version 3.x, even if 3.x is designed to go in another direction.

I can only think of two widely used languages in the last decade where 
there was this type of major break in binary compatibility: Perl and 
Visual Basic. Perl 6 is kind of a moot point because it's never shipped 
(insert reference to Duke Nukem or GNU HURD here, as appropriate), and 
Perl 5 has not just seen continued development, but invigorated 
development in recent years. But the example of VB is instructive. 
VB.NET is similar, but not identical, to classic VB, and as far as I am 
aware its uptake has not been nearly as wide as classic VB. Microsoft 
was able to force what limited migration we've seen mainly because VB is 
not open source and they can simply drop support for it from Windows.

I've stayed with Python 2.7 because I've seen no benefit in 3.x that 
outweighs the hassle of going through my code line by line to make it 
compatible. As a Mac developer I deal with this kind of code/API churn 
with each release of Mac OS X, and I have no desire to increase my 
headaches.

Though I expect I will eventually update to 3.x, however, like many 
other developers I am also annoyed by the decision to break backwards 
compatibility in Python. The decision strikes me as arrogant. Cruft and 
backwards compatibility are an inevitable part of any mature programming 
language, and maintaining compatibility is important--more important 
than bolting on shiny new features, in my view. If shiny new features 
must be added, they should be added side-by-side with older API's.

I think the Python developers have undervalued the conservator part of 
their role. Yes, they have provided tools to help application and 
library developers migrate their code, but it should not be incumbent on 
third-party developers to re-architect stable, working code simply 
because the language has broken binary compatibility. Defenders of the 
3.x migration portray such developers as laggards, but I see Python 
3.x's failure to silently and successfully import 2.x code as a failure 
on the language's end.

I won't go so far as to say that Python 3 is killing Python. Python will 
survive. But the headaches of migration are substantial, and should not 
be necessary.

--Kevin

-- 
Kevin Walzer
Code by Kevin/Mobile Code by Kevin
http://www.codebykevin.com
http://www.wtmobilesoftware.com
-- 
https://mail.python.org/mailman/listinfo/python-list

Recent Messages in this Thread
Chris Angelico Jul 21, 2014 12:55 am
Tim Delaney Jul 19, 2014 09:50 pm
Chris Angelico Aug 01, 2014 02:39 pm
Chris Angelico Jul 21, 2014 10:56 am
Emile van Sebille Jul 17, 2014 07:22 pm
Marko Rauhamaa Jul 17, 2014 06:44 pm
Rick Johnson Jul 18, 2014 02:24 am
Terry Reedy Jul 18, 2014 12:13 am
Terry Reedy Jul 17, 2014 09:30 pm
Rick Johnson Jul 21, 2014 01:22 am
Mark Lawrence Jul 20, 2014 11:40 am
Chris Angelico Jul 21, 2014 01:32 am
Terry Reedy Jul 21, 2014 03:28 am
CHIN Dihedral Jul 21, 2014 03:37 pm
Tim Delaney Jul 20, 2014 04:18 am
Chris Angelico Jul 20, 2014 01:42 am
Terry Reedy Jul 20, 2014 09:52 pm
Chris Angelico Jul 19, 2014 11:10 pm
Steven DAprano Jul 20, 2014 01:23 am
Chris Angelico Jul 19, 2014 11:19 pm
Chris Angelico Jul 20, 2014 01:39 am
Terry Reedy Jul 21, 2014 03:49 am
Terry Reedy Jul 21, 2014 09:00 am
Marko Rauhamaa Aug 01, 2014 03:13 pm
Gregory Ewing Aug 01, 2014 11:14 pm
Michael Torrie Aug 01, 2014 08:22 pm
Chris Angelico Aug 01, 2014 11:50 pm
MRAB Aug 01, 2014 09:09 pm
Nicholas Cole Aug 01, 2014 02:28 pm
Chris Angelico Aug 01, 2014 01:30 pm
Terry Reedy Jul 21, 2014 06:30 pm
Chris Angelico Aug 01, 2014 12:30 pm
Steven DAprano Aug 01, 2014 01:10 pm
C.D. Reimer Jul 19, 2014 06:08 pm
Terry Reedy Jul 19, 2014 06:31 pm
TP Jul 20, 2014 02:03 am
C.D. Reimer Jul 20, 2014 03:10 am
Mark Lawrence Jul 21, 2014 01:54 am
Rick Johnson Jul 20, 2014 01:31 am
Terry Reedy Jul 19, 2014 11:23 pm
Chris Angelico Jul 19, 2014 11:13 pm
Ian Kelly Jul 19, 2014 06:00 pm
Marko Rauhamaa Aug 01, 2014 12:19 pm
C.D. Reimer Jul 20, 2014 01:53 am
Terry Reedy Jul 19, 2014 08:45 pm
MRAB Jul 17, 2014 11:27 am
Chris Angelico Jul 17, 2014 03:15 am
Chris Angelico Jul 17, 2014 06:27 pm
Rick Johnson Jul 18, 2014 09:37 pm
Mark Lawrence Jul 18, 2014 12:26 am
Mark Lawrence Jul 17, 2014 08:37 pm
Steven DAprano Jul 18, 2014 06:38 pm
Mark Lawrence Jul 18, 2014 06:31 pm
MRAB Jul 18, 2014 07:44 pm
Andrew Berg Jul 18, 2014 12:45 am
Terry Reedy Jul 18, 2014 11:26 pm
Steven DAprano Jul 17, 2014 02:51 am
Ian Kelly Jul 16, 2014 05:50 pm
Steven DAprano Jul 17, 2014 04:25 am
Steven DAprano Jul 17, 2014 03:33 am
Ben Finney Jul 17, 2014 04:17 am
Grant Edwards Jul 18, 2014 02:17 pm
Mark Lawrence Jul 17, 2014 07:06 pm
Steven DAprano Jul 18, 2014 06:20 pm
Marko Rauhamaa Jul 16, 2014 03:48 pm
Rick Johnson Jul 14, 2014 10:12 pm
mm0fmf Jul 14, 2014 10:37 pm
MRAB Jul 14, 2014 10:47 pm
Chris Angelico Jul 14, 2014 11:28 pm
Mark Lawrence Jul 14, 2014 11:59 pm
alister Jul 15, 2014 12:19 pm
MRAB Jul 15, 2014 02:50 pm
Mark Lawrence Jul 15, 2014 03:35 pm
alister Jul 15, 2014 05:38 pm
Grant Edwards Jul 15, 2014 06:23 pm
Rick Johnson Jul 15, 2014 01:00 am
Chris Angelico Jul 15, 2014 01:18 am
Rick Johnson Jul 15, 2014 01:54 am
Chris Angelico Jul 15, 2014 02:11 am
Rick Johnson Jul 15, 2014 04:18 am
Martin S Jul 15, 2014 04:31 am
Chris Angelico Jul 15, 2014 04:40 am
Mark Lawrence Jul 15, 2014 07:05 am
Steven DAprano Jul 15, 2014 05:41 am
alister Jul 15, 2014 12:30 pm
Chris Angelico Jul 16, 2014 04:07 pm
Ned Batchelder Jul 18, 2014 10:09 pm
Steven DAprano Jul 19, 2014 07:28 am
Michael Torrie Jul 18, 2014 03:40 am
Marko Rauhamaa Jul 18, 2014 05:24 am
Mark Lawrence Jul 18, 2014 07:34 am
Grant Edwards Jul 18, 2014 02:19 pm
Larry Martell Jul 18, 2014 02:35 pm
Mark Lawrence Jul 18, 2014 07:24 am
alex23 Jul 18, 2014 03:01 am
Marko Rauhamaa Jul 16, 2014 04:20 pm
Javier Jul 16, 2014 05:33 pm
Mark Lawrence Jul 18, 2014 03:50 pm
Mark Lawrence Jul 18, 2014 03:45 pm
Terry Reedy Jul 19, 2014 01:27 am
Chris Angelico Jul 19, 2014 04:41 pm
Rick Johnson Jul 19, 2014 08:39 pm
Rick Johnson Jul 19, 2014 10:50 pm
Wolfgang Keller Aug 01, 2014 11:10 am
Chris Angelico Aug 01, 2014 11:22 am
Dietmar Schwertberger Aug 01, 2014 05:16 pm
Mark Lawrence Jul 18, 2014 04:22 pm
Torsten Bronger Jul 18, 2014 03:25 pm
Rick Johnson Jul 19, 2014 04:29 pm
Chris Angelico Jul 18, 2014 08:27 am
Dan Stromberg Jul 18, 2014 03:34 am
Chris Angelico Jul 18, 2014 05:34 am
Ian Kelly Jul 18, 2014 08:21 am
MRAB Jul 18, 2014 03:46 pm
Mark Lawrence Jul 18, 2014 03:49 pm
Terry Reedy Jul 19, 2014 01:21 am
Michael Torrie Jul 15, 2014 03:47 am
Chris Angelico Jul 15, 2014 04:20 am
Fabien Jul 15, 2014 12:17 pm
Chris Angelico Jul 15, 2014 01:00 pm
Kevin Walzer Jul 15, 2014 01:57 pm
Chris Angelico Jul 15, 2014 02:31 pm
Mark Lawrence Jul 15, 2014 03:44 pm
Chris Angelico Jul 15, 2014 03:48 pm
Anders Wegge Keller Jul 15, 2014 03:02 pm
Grant Edwards Jul 15, 2014 03:43 pm
alex23 Jul 17, 2014 05:48 am
Steven DAprano Jul 17, 2014 07:03 am
Rick Johnson Jul 17, 2014 05:36 pm
Chris Angelico Jul 17, 2014 05:52 pm
Steven DAprano Jul 18, 2014 06:01 pm
Rick Johnson Jul 17, 2014 06:38 pm
Chris Angelico Jul 17, 2014 06:48 pm
Marko Rauhamaa Jul 15, 2014 05:38 pm
Steven DAprano Jul 15, 2014 07:06 pm
Marko Rauhamaa Jul 15, 2014 08:01 pm
Steven DAprano Jul 16, 2014 03:51 am
Chris Angelico Jul 16, 2014 04:20 am
Marko Rauhamaa Jul 16, 2014 05:52 am
Chris Angelico Jul 16, 2014 06:26 am
Steven DAprano Jul 16, 2014 07:49 am
Chris Angelico Jul 16, 2014 08:44 am
Marko Rauhamaa Jul 16, 2014 10:46 am
Steven DAprano Jul 16, 2014 12:10 pm
Chris Angelico Jul 16, 2014 12:55 pm
Marko Rauhamaa Jul 16, 2014 01:11 pm
Chris Angelico Jul 16, 2014 02:04 pm
Marko Rauhamaa Jul 16, 2014 02:39 pm
Chris Angelico Jul 16, 2014 03:23 pm
Frank Millman Jul 17, 2014 05:18 am
Steven DAprano Jul 17, 2014 07:49 am
Rustom Mody Jul 30, 2014 09:31 pm
Terry Reedy Jul 16, 2014 09:02 pm
Terry Reedy Jul 16, 2014 10:47 pm
Steven DAprano Jul 16, 2014 11:35 am
Chris Angelico Jul 16, 2014 11:54 am
Frank Millman Jul 16, 2014 02:27 pm
Chris Angelico Jul 16, 2014 03:18 pm
Frank Millman Jul 17, 2014 06:31 am
Chris Angelico Jul 17, 2014 06:41 am
Frank Millman Jul 17, 2014 07:09 am
Chris Angelico Jul 17, 2014 07:59 am
Neil D. Cerutti Jul 16, 2014 03:48 pm
Mark Lawrence Jul 16, 2014 05:34 pm
Rick Johnson Jul 16, 2014 10:41 pm
Mark Lawrence Jul 16, 2014 11:00 pm
Steven DAprano Jul 17, 2014 03:16 am
Rick Johnson Jul 17, 2014 04:47 am
Fabien Jul 17, 2014 10:12 am
Chris Angelico Jul 17, 2014 11:12 am
Rick Johnson Jul 17, 2014 06:15 pm
Rick Johnson Jul 17, 2014 01:16 am
Steven DAprano Jul 17, 2014 03:14 am
Mark Lawrence Jul 17, 2014 07:17 am
alex23 Jul 18, 2014 02:49 am
Chris Angelico Jul 17, 2014 03:20 am
Mark Lawrence Jul 17, 2014 10:54 pm
Marko Rauhamaa Jul 16, 2014 06:44 am
Chris Angelico Jul 16, 2014 06:50 am
Steven DAprano Jul 16, 2014 07:33 am
Mark Lawrence Jul 15, 2014 08:24 pm
Devin Jeanpierre Jul 15, 2014 08:47 pm
Abhiram R Jul 15, 2014 09:35 pm
Abhiram R Jul 15, 2014 09:37 pm
Mark Lawrence Jul 15, 2014 09:49 pm
Abhiram R Jul 15, 2014 10:13 pm
Mark Lawrence Jul 15, 2014 10:38 pm
Kevin Walzer Jul 16, 2014 12:43 am
Kevin Walzer Jul 15, 2014 10:30 pm
Abhiram R Jul 15, 2014 10:40 pm
Joshua Landau Jul 15, 2014 11:45 pm
Ben Finney Jul 17, 2014 04:02 am
Rick Johnson Jul 15, 2014 11:53 pm
MRAB Jul 16, 2014 01:57 am
Chris “Kwpolska” Warrick Jul 16, 2014 10:20 am
Abhiram R Jul 16, 2014 03:37 am
Mark Lawrence Jul 16, 2014 08:18 am
Steven DAprano Jul 16, 2014 02:08 am
Rick Johnson Jul 15, 2014 06:01 pm
Marko Rauhamaa Jul 15, 2014 06:08 pm
Steven DAprano Jul 15, 2014 06:57 pm
Marko Rauhamaa Jul 15, 2014 07:49 pm
Steven DAprano Jul 15, 2014 06:53 pm
Rick Johnson Jul 15, 2014 08:20 pm
Ian Kelly Jul 15, 2014 08:46 pm
Ian Kelly Jul 15, 2014 06:53 pm
Michael Torrie Jul 15, 2014 03:58 am
Mark Lawrence Jul 15, 2014 07:31 am
pyotr filipivich Jul 12, 2014 05:50 pm
Messages in this thread

Previous post: Re: xslt with python