Wednesday, July 4, 2012

Python 3 Marketing Problem?

I ran across Ted Dziuba's excellent post about Python 3's marketing problem via Reddit:
http://teddziuba.com/post/26426290981/python-3s-marketing-problem

I find his argument somewhat convincing. While I like the multiprocessing module there are times when you just need proper threads. An example: if one of your Python processes is starting other child processes, how can you pass the handle to another Python process and let it read input? I don't think you can (please tell me I'm wrong). Also, Peter Wang commented on Ted's blog that rich client apps can benefit from good threading.

I read the link on Python 3 Q&A which Ted provided: http://ncoghlan_devs-python-notes.readthedocs.org/en/latest/python3/questions_and_answers.html (by Nick Coghlan).

I found 2 things interesting about this.


First, I found it reassuring that it was anticipated that the switch to Python 3 would take this long.

Going in to this process, my personal estimate was that it would take roughly 5 years to get from the first production ready release of Python 3 to the point where its ecosystem would be sufficiently mature for it to be recommended unreservedly for all new Python projects  
. . . . 
If we haven’t put this largely behind us by the end of June, 2014, I’ll be disappointed.
It's just his personal opinion, but Nick is closer to the matter than myself, so it's an interesting data point.

Second, the mention of the work on STM for PyPy. I've toyed with PyPy a very little bit and it's probably the first thing I'd reach for if I had a performance issue with Python. That PyPy may also address the GIL/threading issue is really exciting. I'll be watching this space.

It's an interesting thought, but I'm not sure I agree that learning Python 3 is as risky as learning a new language. I'll reserve judgement on that, I confess I haven't tried it yet. The libraries are starting to move over and in a couple of years the risk will certainly be lower.

Is it worth the effort to migrate to Python 3? I will say: not yet. I'm mostly waiting on Django (though if Flask gets there first...).

I'm going to watch the Python 3 library porting effort along with PyPy's STM work and re-evaluate later. Will I move away from Python if threading never gets fixed? It might be a factor, but alone it might not be enough of an issue as long as there are work arounds.


I wouldn't exactly be heartbroken if Python 3 turns out like Perl 6. Perl 6 stalled (died?) and Perl 5 revitalized in the meantime. That'd be an interesting development for Python, though I hope the Python community wouldn't dry up in the process.


Meanwhile, it looks as though Python 2 will still be viable for a long time.

No comments:

Post a Comment