Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Chris Barker
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?

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?

(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.

-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?

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

[email protected]
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Donald Stufft

> On Dec 15, 2014, at 2:30 PM, Chris Barker  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
> 
> [email protected] 
---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Barry Warsaw
On Dec 14, 2014, at 10:14 AM, Nick Coghlan wrote:

>Barry, Petr, any of the other folks working on distro level C extension
>ports, perhaps one of you would be willing to consider an update to the C
>extension porting guide to be more in line with Brett's latest version of
>the Python level porting guide?

It's probably at least worth incorporating the quick guide on the wiki into
the howto:

https://wiki.python.org/moin/PortingToPy3k/BilingualQuickRef

Cheers,
-Barry
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Mark Roberts
On Mon, Dec 15, 2014 at 11:30 AM, Chris Barker 
wrote:

> 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?
>
> That might be a nice thing to see in a survey, actually.
>

So, I'm the guy that used the "hate" word in relation to writing 2/3
compliant code. And really, as a library maintainer/writer I do hate
writing 2/3 compatible code. Having 4 future imports in every file and
being forced to use a compatibility shim to do something as simple as
iterating across a dictionary is somewhere between sad and infuriating -
and that's just the beginning of the madness. From there we get into
identifier related problems with their own compatibility shims - like
str(), unicode(), bytes(), int(), and long(). Writing 2/3 compatible Python
feels more like torture than fun. Even the python-future.org FAQ mentions
how un-fun writing 2/3 compatible Python is.

The whole situation is made worse because I *KNOW* that Python 3 is a
better language than Python 2, but that it doesn't *MATTER* because Python
2 is what people are - and will be - using for the foreseeable future. It's
impractical to drop library support for Python 2 when all of your users use
Python 2, and bringing the topic up yields a response that amounts to:
"WELL, Python 3 is the future! It has been out for SEVEN YEARS! You know
Python 2 won't be updated ever again! Almost every library has been updated
to Python 3 and you're just behind the times! And, you'll have to switch
EVENTUALLY anyway! If you'd just stop writing Python 2 libraries and focus
on pure Python 3 then you wouldn't have to write legacy code! PEOPLE LIKE
YOU are why the split is going to be there until at least 2020!". And then
my head explodes from the hostility of the "core Python community". Perhaps
no individual response is quite so blunt, but the community (taken as a
whole) feels outright toxic on this topic to me.

Consider some statistics from Pypi:
- 13359 Python 2.7 packages
- 7140 Python 3.x packages
- 2732 Python 3.4 packages
- 4024 Python 2.7/3.x compatible packages
- 2281 2.7/3.4 compatible modules
- 9335 Python 2.7 without ANY Python 3 support
- 11078 Python 2.7 without Python 3.4 support
- 451 modules 3.4 only packages
- 3116 Python 3.x only packages
- 1004 Python 3.x modules without (tagged) Python 3.4 support

Looking at the numbers, I just cannot fathom how we as a community can
react this way. The top 50 projects (!!) still prevent a lot of people from
switching to Python 3, but the long tail of library likely an even bigger
blocker. I also don't understand how we can claim people should start ALL
new projects in Python 3 - and be indignant when they don't!. We haven't
successfully converted the top 50 projects after SEVEN YEARS, and the long
tail without 3.x support is still getting longer. Claims that we have
something approaching library parity seem... hilarious, at best?

I suppose what I'm saying is that there's lots of claims that the
conversion to Python 3 is inevitable, but I'm not convinced about that. I'd
posit that another outcome is the slow death of Python as a language. I
would suggest adding some "community health" metrics around the Python 2/3
split, as well as a question about whether someone considers themselves
primarily a library author, application developer, or both. I'd also ask
how many people have started a new application in another language instead
of Python 3 because of the split.

-Mark
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Ben Finney
Mark Roberts  writes:

> So, I'm the guy that used the "hate" word in relation to writing 2/3
> compliant code. And really, as a library maintainer/writer I do hate
> writing 2/3 compatible code.

You're unlikely to get disagreement on that. I certainly concur.

The catch is, at the moment it's better that any of the alternatives for
writing medium-to-long-term maintainable Python code.

> The whole situation is made worse because I *KNOW* that Python 3 is a
> better language than Python 2, but that it doesn't *MATTER* because
> Python 2 is what people are - and will be - using for the foreseeable
> future.

Only if “people” means “any amount of people at all who are or might be
using Python”.

While developers might like something that allows them to serve such a
broad user base indefinitely, it's simply not realistic – and *no*
feasible support strategy for Python could allow that.

So, as developers writing Python code, we must set our expectations for
support base according to reality rather than wishing it were otherwise.

> It's impractical to drop library support for Python 2 when all of your
> users use Python 2

Right. The practical thing to do is to decide explicitly, per project,
what portion of those users you can afford to leave behind in
Python-2-only land, and how much cost you're willing to bear to keep
than number low.

> I suppose what I'm saying is that there's lots of claims that the
> conversion to Python 3 is inevitable, but I'm not convinced about
> that.

I've never seen such a claim from the PSF. Can you cite any, and are
they representative of the PSF's position on the issue?

Rather, the claim is that *if* one's code base doesn't migrate to Python
3, it will be decreasingly supported by the PSF and the Python community
at large.

Happily, what's also true is there is a huge amount of support – in
language features, tools, and community will – to help developers do
that migration. Much more than most other migrations I've observed.

So what's inevitable is: either a code base will benefit from all that
support and be migrated to Python 3 and hence be maintainable as the
Python ecosystem evolves; or it will be increasingly an outsider of that
ecosystem.

-- 
 \   “I have one rule to live by: Don't make it worse.” —Hazel |
  `\  Woodcock |
_o__)  |
Ben Finney

___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Alex Gaynor
Ben Finney  benfinney.id.au> writes:

> 
> Rather, the claim is that *if* one's code base doesn't migrate to Python
> 3, it will be decreasingly supported by the PSF and the Python community
> at large.
> 

The PSF doesn't support any versions of Python. We have effectively no
involvement in the development of Python the language, or CPython. We 
certainly
don't care what version of Python you use.

Members of the python-dev list, or the CPython core development teams have
opinions probably, but that doesn't make them the opinion of the PSF.

Alex

___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Ben Finney
Alex Gaynor  writes:

> Ben Finney  benfinney.id.au> writes:
>
> > Rather, the claim is that *if* one's code base doesn't migrate to
> > Python 3, it will be decreasingly supported by the PSF and the
> > Python community at large.
>
> The PSF doesn't support any versions of Python. We have effectively no
> involvement in the development of Python the language, or CPython. We
> certainly don't care what version of Python you use.

Okay, I was under the impression that the entity blessing Python
releases as “official” is the PSF. What is that entity, then?

Whatever entity is the one which makes “this is an official release of
Python the language”, and “support for Python version A.B will end on
-MM-DD”, that's the entity I meant.

-- 
 \ “I went to the museum where they had all the heads and arms |
  `\  from the statues that are in all the other museums.” —Steven |
_o__)   Wright |
Ben Finney

___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Nick Coghlan
On 16 December 2014 at 13:08, Mark Roberts  wrote:
> The whole situation is made worse because I *KNOW* that Python 3 is a better
> language than Python 2, but that it doesn't *MATTER* because Python 2 is
> what people are - and will be - using for the foreseeable future. It's
> impractical to drop library support for Python 2 when all of your users use
> Python 2, and bringing the topic up yields a response that amounts to:
> "WELL, Python 3 is the future! It has been out for SEVEN YEARS! You know
> Python 2 won't be updated ever again! Almost every library has been updated
> to Python 3 and you're just behind the times! And, you'll have to switch
> EVENTUALLY anyway! If you'd just stop writing Python 2 libraries and focus
> on pure Python 3 then you wouldn't have to write legacy code! PEOPLE LIKE
> YOU are why the split is going to be there until at least 2020!". And then
> my head explodes from the hostility of the "core Python community". Perhaps
> no individual response is quite so blunt, but the community (taken as a
> whole) feels outright toxic on this topic to me.

The core Python development community are the ones ensuring that folks
feel comfortable continuing to run Python 2 (by promising upstream
support out to 2020 and adjusting our maintenance release policies to
account for the practical realities of long term support), as well as
working with redistributors and tool developers to reduce the
practical barriers to migration from Python 2 to Python 3 (such as
bundling pip with Python 2.7.9, or Brett's recent work on updating the
porting guide).

It's the folks just *outside* the language core development community
that legitimately feel the most hard done by, as they didn't choose
this path - we did. Folks working on libraries and frameworks likely
won't see any direct benefit from the migration for years - given the
timelines of previous version transitions within the Python 2 series,
we likely won't see projects widely dropping Python 2 support until
after there are versions of RHEL & CentOS available where the default
system Python is Python 3. In the meantime, they're stuck with working
in a hybrid language that only benefits from the subset of
improvements in each new Python 3 release that increase the size of
the source compatible Python 2/3 subset.

Living with carrier grade operating system update cycles when you're
used to upgrading your baseline target Python version every couple of
years is genuinely frustrating as a developer.

Unfortunately, the anger that library and framework authors should
really be directing at us, and at the commercial Linux distros
offering long term support for older versions of Python, occasionally
spills over into frustration at the *end users* that benefit from
those long term support offerings.

Explanations of the overarching industry patterns influencing the
migration (like
http://developerblog.redhat.com/2014/09/09/transition-to-multilingual-programming-python/)
are cold comfort when you're one of the ones actually doing the work
of supporting two parallel variants of the language.

Regards,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Nick Coghlan
On 16 December 2014 at 16:03, Ben Finney  wrote:
> Alex Gaynor  writes:
>
>> Ben Finney  benfinney.id.au> writes:
>>
>> > Rather, the claim is that *if* one's code base doesn't migrate to
>> > Python 3, it will be decreasingly supported by the PSF and the
>> > Python community at large.
>>
>> The PSF doesn't support any versions of Python. We have effectively no
>> involvement in the development of Python the language, or CPython. We
>> certainly don't care what version of Python you use.
>
> Okay, I was under the impression that the entity blessing Python
> releases as “official” is the PSF. What is that entity, then?

The PSF controls the trademark, but its the comparatively informal
collective known as python-dev (ultimately helmed by Guido) that makes
the technical decisions.

To the degree with which the latter body is formally defined by
anything, it's defined by PEP 1.

> Whatever entity is the one which makes “this is an official release of
> Python the language”, and “support for Python version A.B will end on
> -MM-DD”, that's the entity I meant.

That would be the release managers for the respective CPython releases
(in collaboration with the rest of python-dev).

Cheers,
Nick.

-- 
Nick Coghlan   |   [email protected]   |   Brisbane, Australia
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com