4 ms·
Because here is a quick list of just over 100 things that have to be considered to port and maintain compatibility between the two: http://python-future.org/co
by daveguy 11y ago
Because here is a quick list of just over 100 things that have to be considered to port and maintain compatibility between the two:
http://python-future.org/compatible_idioms.html http://python-future.org/compatible_idioms.html
Python3 is a different language than Python 2.7 and there is no compelling reason to move from 2.7 to 3.
Most of what would have been compelling reasons are being handled in PyPy. PyPy is the present and future of Python and that future is 2.7.
- X-Istence 11y agoIf you want to use just Python 3, after the initial port there is no issues with having to maintain Python 2/3 compatibility. Working in open source, there is going to be a time when I stop supporting Python 2.x, and already I and others are building libraries that are Python 3.x first, are developed on Python 3.x and Python 2.x is an after thought in testing. PyPy will eventually have to catch up to 3.x, and no, the future is definitely not 2.7.
- Nkdo 11y agoNo matter how hard you're wishing it to be true, does not make it so. PyPy will "have" to catch up? in the name of what? PyPy is but one of the many projects that are still thriving in the 2.x ecosystem, there's even a competitor to PyPy that was launched 2 years ago that is also a 2.x exclusive: Pyston. https://blog.pyston.org https://blog.pyston.org Yes, a very new implementation project that happens to focus on 2.7. Python 2 gets all the better runtimes. Long after the end of life of the official CPython 2.7, we will still be running 2.x programs, and doing it on much better runtimes than CPython. We've been hearing the same tirades of Python 3's future over and over again by its partisans ever since its release in 2008. 8 years have passed since then. 8 years will pass and Python 3 will still have nothing but a minority of vocal open source users. Python will be treated as a legacy language the way COBOL and BASIC are treated before py3 starts picking up any steam. That's kinda what some companies are already doing, like Dropbox. Switching to Go here and there, while keeping the maintenance of their very large 2.7 python codebase with absolutely no intention whatsoever of moving that behemoth to 3.x. Why bother? they could write new software features, fix bugs and so on instead of waste time on porting. Why waste so much time on porting when it brings so little benefits? Programming is ultimately about problem solving. Porting to python 3 doesn't make my software better. It's certainly not running any more efficient either, that's PyPy and Pyston territory (Using PyPy can allow you, under some circumstances, to seriously cut down the amount of hardware you need). It doesn't magically add new features, or fix the bugs. Python 3 will go down in history as the best example of what you should never do while growing a language. People like to complain about C++'s complexity, but unlike Python 3, C++ isn't threatened by its own past selves, and that's despite adding features that are arguably far more compelling to look into than the various differences between Py2 and 3. It's also very hard to regain lost trust. The trust that was lost after what was done to Python with Python 3 can never be fully regained. I can write software in C++, Java, C#, Javascript, Lisp, Perl 5 (which is still being worked on) and so on and have an expectation not to have to go through something like Py3. To a lesser extent, even Ruby, although it breaks compatibility from time to time, it never went through anything as major in a one time fashion as Py3 did, which is why the ruby ecosystem hasn't self destructed. With moore's law being utterly dead, the fact that all the interesting improvements to language implementation are happening only to 2.x rather than 3.x really contradicts your idea that the future lies in 3.x.
- poooogles 11y ago>Python3 is a different language than Python 2.7 and there is no compelling reason to move from 2.7 to 3. That's just not true at all. Asyncio is a perfect example.
- daveguy 11y agoTrollius: https://pypi.python.org/pypi/trollius https://pypi.python.org/pypi/trollius Or, better, gevent: http://www.gevent.org http://www.gevent.org No compelling reason. That is why 8 years later 2.7 is still used by the majority.
- takeda 11y ago> Trollius: > > https://pypi.python.org/pypi/trollius https://pypi.python.org/pypi/trollius You should point to: https://trollius.readthedocs.org/ https://trollius.readthedocs.org/ which states that it is discontinued and you should just move on to Python 3. I think you should give asyncio a try first (especially on Python 3.5 with async/await keywords) before stating there's no compelling reasons. Another strong (for me) reason to go with Python 3 is that it has bunch of old warts removed. The code is just easier to maintain.
- takeda 11y ago> Because here is a quick list of just over 100 things that have to be considered to port and maintain compatibility between the two: > http://python-future.org/compatible_idioms.html http://python-future.org/compatible_idioms.html It's bit a BS, majority and I would say 90% of that you can simply use the Python 3 syntax and both Python 2 and 3 will accept it. Also many people who program in Python 2.7 already use the new syntax without even realizing it.