On Dec 15, 2014, at 2:30 PM, Chris Barker <chris.barker@noaa.gov> wrote:

OK, this seems weird to me:

For what it’s worth, I almost exclusively write 2/3 compatible code (and that’s
with the “easy” subset of 2.6+ and either 3.2+ or 3.3+)

ouch.
 
 However the way it "used" to work
is that the newest version, with all the new features, would quickly become
the dominant version within a year or two.

This seems completely contradictory to me: Yes, the 3.* transition can be difficult, thus the need to support 1.*. But if you are still supporting 2.6, then clearly "the newest version, with all the new features, would quickly become
the dominant version within a year or two"

But there are those use cases that seem to require sticking with old version for ages, even if there have not been substantial incomparable changes.

So we could be on version 2.12 now, and you'd still need to support 2.6, and still be working in a legacy, least common denominator language. How does this have anything to do with the 3.* transition?

Most of my libraries probably wouldn’t be 2.6+ if there was something after 2.7. Other than pip itself I mostly only support 2.6 because it’s easy to do compared to 2.7 and there’s nothing in 2.7 that really makes me care to drop it in most situations. Realistically that’s what every decision to drop a version for a library ends up being, look at guesstimate numbers for the old version, and decide if that segment of the user base is worth either the pain of supporting back that far or missing out on the newer features. For 2.7 over 2.6 that answer for me is primarily no it’s not (though 2.7.9 might make me start dropping support for older versions once it’s widely deployed).


But plenty of us are kind of stuck on 2.7 at this point -- we can upgrade, but can't accommodate a major shift (for me it's currently wxPython that's the blocker -- that may be the only one. Others are either supported or small enough that we could handle the port ourselves.)

But anyway, if you don't hate 2.6 back in the day, why hate it now?

The answer is generally that developers are human beings and like new things, so while 2.6 might have been great back in the day, it’s not back in the day anymore and they are tired of it.


(yet, I know Donald didn't use the "hate" word). 

I guess my pint is that you either would much prefer to be working with the latest and greatest cool features or not -- but if you do the problem at this point isn't anything about py3, it's about the fact that many of us are required to support old versions, period.

Right, It’s not _exactly_ about Python 3, but that Python 3.0 made it so that an old version is by far the dominant version which puts people who have outside users in a situation where they have to decide between new-and-shiny but hurting the bulk of their users and old-and-busted and being friendly to the bulk of their users.


-Chris


 However I can't really justify for most situations supporting _only_ those
things because even today they are not the dominant version (or really close
to it in any number I have access too). This means that if I want to take
advantage of something newer I'm essentially dropping the largest part of
the ecosystem.

Are you primarily writing packages for others to use? if so, then yes. But I wonder how many people are in that camp? Don't most of us spend most of our time writing our own purpose-built code?

Yes I am.


That might be a nice thing to see in a survey, actually.


-Chris

--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA