5 ms·
I am not really that excited about any of these features that's in 3.3 (or even in Python 3). The biggest problem I have is that Python 2 works "good enough" a
by amix 15y ago
I am not really that excited about any of these features that's in 3.3 (or even in Python 3).
The biggest problem I have is that Python 2 works "good enough" and upgrading to Python 3 does not have many benefits, other than lots of work and slower performance. I guess a lot of people feel the same way, hence the slow or non existing adoption of Python 3. I guess Python 3 might end up as Perl 6 if this continues since we keep investing time on Python 2.x libraries and features.
What we need is a reason to upgrade and the killer feature of Python 3 could be performance. I would upgrade to Python 3 in a instance if it offered a lot better performance than Python 2.
How do we achieve better performance? Adopt PyPy as the reference implementation for Python 3 and all future references. Making PyPy a centerpiece of Python 3+ would probably mean it would mature faster.
PyPy is focused right now on Python 2.X, but I would rather see it focus on the future of Python and being a killer feature of Python 3+.
- agentultra 15y agoI find your claims are unsubstantiated and would require some evidence to be convincing. For example, the performance of Python 3.0 was slow on I/O operations. The reason was because the I/O modules were written in pure-python in order to get the ball rolling. This wasn't a bug. However, the code was eventually ported to C in 3.1 and unsurprisingly the performance improved: http://www.gtsystem.eu/blog/2009/08/improved-performance-of-python-31/ http://www.gtsystem.eu/blog/2009/08/improved-performance-of-... And that's an old post from 2009! The performance is much better today. Features they're releasing in this new version include zero-copy in os.copyfile() which is totally sweet. No user-space buffers involved in transferring bytes from a file to a socket. This should speed up such operations well past what any version of python 2.x is capable of. There isn't a feature in Python 3 that is not substantially better than 2.x -- they're fixing all the fiddly bits and producing a much better language. There is no feature they can create which will open the dam to a flood of porting projects. The reason is that the problem is a social one. An honest-to-goodness effort to port the large libraries requires a plan to support the existing 2.x versions alongside the 3.x versions so that the people who are still running applications built on the old versions will still work. This requires extra effort that is difficult to acquire in open source projects let alone commercial ones. Even if the Python 3 devs added a feature that materialized ponies out of thin air there would still be projects running the 2.x code.
- enjo 15y agoYep. I won't port a single bit of my existing code until 100% of the libraries I depend on are ported first. As much as I like Python 3, it just doesn't make any sense for me to deal with it right now.
- agentultra 15y agoPart of what I was trying to get across is that there will never be a compelling reason to make the port. It will never "make sense" so long as what you have now continues to work. If you're ever going to make the port, you have to decide to do it and make the effort. Nothing the Python 3 devs release will ever convince you to port otherwise.
- paganel 15y ago> I find your claims are unsubstantiated and would require some evidence to be convincing. It's been 3+ years since Python 3.0 has been released, and, while I agree that there's no "substantiated evidence" for its demise, some of us who witnessed the whole Zope2 to Zope3 "transition" know that in the end "evidence" doesn't count at all. What count are actual smart people, lots of them preferably, building cool and useful things with the new tool.
- steder 15y agoPyPy has folks actively working on getting Py3k support. Check out their status updates on py3k and consider donating to the PyPy project to make this happen. http://morepypy.blogspot.com/2012/03/py3k-status-update-2.html http://morepypy.blogspot.com/2012/03/py3k-status-update-2.ht... http://pypy.org/py3donate.html http://pypy.org/py3donate.html
- bobbyi 15y agoPython 3 has been making performance improvements over 2.x. 3.2 included the new GIL. 3.3 includes more memory-efficient Unicode strings. Pypy is focussed on supporting 3.x. There are two major initiatives going now, one of which is numpy support and the other is Python 3 support. People aren't "investing time on Python 2.x libraries and features". Python 2 is going to just receive security and bug fixes and all new work is on Python 3. Major libraries are currently supporting Python 3, including almost all of the widely used ones (numpy, scipy, sqlalchemy, virtualenv, etc). The ones that aren't, are being ported (django, twisted). Overall, the tone and information in your post is quite outdated. Your sentiments were shared by a lot of people circa Python 3.1, but now it is 2012 and the Python ecosystem has mostly got a handle on how to straddle two versions, after being help up for a bit by discovering that the initial "lib2to3" approach wasn't the best solution for many projects.
- sigzero 15y agoPlease do NOT compare Py3 to Perl 6. They are totally different beasts.
- smeg 15y agoPy3 is much worse. At least Perl 6 is aiming for some amazing advances that will trade off quite well (if it is ever delivered) against breaking compatibility with Perl5. Py3 broke compatibility (at least at the extension layer) for what exactly...now I can say print() instead of print ""? What a joke.