
Also keep in mind that not all Python libraries are on PyPI. For non-Python projects with Python bindings (think video players, OpenCV, systemd, Samba), distribution via PyPI doesn't make much sense. And since the Python bindings are usually second-class citizens, the porting doesn't have a high priority. If anyone is wondering why their favorite Linux distribution is stuck with Python 2 – well, I can only speak for Fedora, but nowadays most of what's left are CPython bindings. No pylint --py3k or 2to3 will help there... On Fri, Dec 12, 2014 at 7:24 PM, Mark Roberts <wizzat@gmail.com> wrote:
So, I'm more than aware of how to write Python 2/3 compatible code. I've ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at work. I'm also aware of how much writing 2/3 compatible code makes me hate Python as a language. It'll be a happy day when one of the two languages dies so that I never have to write code like that again. However, my point was that just because the core libraries by usage are *starting* to roll out Python 3 support doesn't mean that things are "easy" or "convenient" yet. There are too many libraries in the long tail which fulfill semi-common purposes and haven't been moved over yet. Yeah, sure, they haven't been updated in years... but neither has the language they're built on.
I suppose what I'm saying is that the long tail of libraries is far more valuable than it seems the Python3 zealots are giving it credit for. Please don't claim it's "easy" to move over just because merely most of the top 20 libraries have been moved over. :-/
-Mark
On Thu, Dec 11, 2014 at 12:14 PM, Dan Stromberg <drsalists@gmail.com> wrote:
On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts <wizzat@gmail.com> wrote:
I disagree. I know there's a huge focus on The Big Libraries (and wholesale migration is all but impossible without them), but the long tail of libraries is still incredibly important. It's like saying that migrating the top 10 Perl libraries to Perl 6 would allow people to completely ignore all of CPAN. It just doesn't make sense.
Things in the Python 2.x vs 3.x world aren't that bad.
See: https://python3wos.appspot.com/ and https://wiki.python.org/moin/PortingPythonToPy3k http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code to run on 2.x and 3.x)
I believe just about everything I've written over the last few years either ran on 2.x and 3.x unmodified, or ran on 3.x alone. If you go the former route, you don't need to wait for your libraries to be updated.
I usually run pylint twice for my projects (after each change, prior to checkin), once with a 2.x interpreter, and once with a 3.x interpreter (using http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but I gather pylint has the option of running on a 2.x interpreter and warning about anything that wouldn't work on 3.x.