the Gravity of Python 2
Terry Reedy
tjreedy at udel.edu
Wed Jan 8 15:45:16 EST 2014
On 1/8/2014 9:15 AM, Roy Smith wrote:
> As somebody who is still firmly in the 2.x world, I'm worried about the
> idea of a 2.x fork. While I have my doubts that 3.x was a good idea,
> the fact is, it's here. Having the community fractured between the two
> camps is not good. Let's say I'm somebody who wants to contribute some
> OSS. I have three basic choices:
>
> 1) I can make it 3.x only. Now, (nominally) half of the python
> community is unable to realize value from my contribution.
>
> 2) I can make it 2.x only. Same thing in reverse.
>
> 3) I can make it work on both 2.x and 3.x, which means I'm investing
> more effort than I had to if it were single platform.
>
> Any of those alternatives is worse than ideal. Forking 2.x to create an
> unofficial 2.8 release would just prolong the situation. As I've stated
> before, I don't see any urgency in moving to 3.x, and don't imagine
> doing there for another couple of years, but I absolutely can't imagine
> moving to a 2.8 fork.
This question cannot be answered generically.
I think it worth noting that in part this is the same dilemma as 'how
many versions to support' within each of 2.x and 3.x. Limiting code to
3.3+ allows use of the new asyncio module (via Pypy for 3.3) and the new
FSR unicode. Use of asyncio or FSR features* also forces the choice you
give above as neither can be backported to 2.7.
* IE, support of all of unicode on all Python systems with
straightforward code, without contortions.
If I were giving away 'stand-alone' application code whose dependencies
were available on both 2.7 and 3.x+, I would write for 3.x+ on the basis
that everyone could install 3.x, and that new users are increasingly
likely to only have 3.x only. I would have little sympathy for
organizations that prohibit 3.x -- unless they were to pay me to.
For numerical or combinatorial code, adding 'from __future__ import
division' (which I think one should do anyway for 2.x code) might be the
only extra work needed for option 3).
--
Terry Jan Reedy
More information about the Python-list
mailing list