According to the Python 3 Wall of Superpowers[1], almost every commonly-used library has adopted 3. Now the problem is getting people to realize that... I was talking with someone just a month ago who said that there were no numeric processing libraries on 3 and so they couldn't switch.
>Now the problem is getting people to realize that...
I realize it, but (1) even after large libraries support 3 there will still be a long tail of libraries that aren't ported (and will never be), and (2) I see very little value in porting our very large code bases to Python 3, with its breaking changes and subtle behavioral differences that need to be thoroughly tested. There's no must-have feature for us to justify that effort, so we won't be making the switch for the foreseeable future.
IMO Python should have put a lot more effort into backwards compatibility when releasing Python 3. I'm genuinely concerned that this release has killed Python, and I'm not alone.
> I see very little value in porting our very large code bases to Python 3
That's too bad. We've started writing all new code in 3, and now I can't stand working with 2. It feels clunky and old in comparison. A year ago I never would have believed I could feel that way, but I do: I will not willingly (that is, absent strong business reasons) write Python 2 code again.
> (1) even after large libraries support 3 there will still be a long tail of libraries that aren't ported (and will never be)
That should be a non-issue unless you require one of those libraries.
> There's no must-have feature for us to justify that effort, so we won't be making the switch for the foreseeable future.
There's no reason for making the switch if you're going to ditch your code base in the foreseeable future. Otherwise, you'll have to justify your decision in the unforeseeable future. And thereafter.
>That should be a non-issue unless you require one of those libraries.
That's kind of a truism, isn't it? I don't understand the dismissiveness - there's certainly a sizable portion of users that use libraries other than the top 50 most popular.
There is ton of new interesting libraries being compatible with Python 3 only, so you can make this argument in either way.
In the end, you should ask yourself some questions:
Am I starting a new project or continuing an older one? If the former one, Python 3 should be preferred unless some library I need is only available for Python 2. If the latter, I should ask if the cost of migrating my codebase makes sense. If not, Python 2 is still a viable choice until 2020 at least.
Isn't that the same argument that so many companies used to hang on to IE6 for so long? There were a ton of in-house applications built on ActiveX and IE6 quirks and porting to something newer wasn't worth the cost.
Eventually, don't you think that you will start using a more modern version of Python?
"Modern" for its own sake adds no value, so no, we won't port our existing code bases to something "more modern." It's funny that string interpolation, a port of a feature other languages like PHP have had for decades and the fourth way to do the same thing in Python, is being held up as something modern.
The frustration with the neverending 2 vs. 3 transition pushed me to looking at Elixir more deeply and now I am very happy. Of course it is not yet possible to completely avoid Python, but new things are Elixir only for me.
Of course I pray every night to Eris that such a fiasko will never happen to Elixir.
My comment was kind of a loaded question. If they consider Numpy a numeric package, then yes, it's been there for a while and they haven't been paying attention. That includes the packages you mentioned as well
[1]: https://python3wos.appspot.com/