What is the future of Python 3?
-
With a lot of legacy Python 2.x code hanging around, what is the future of Python 3. Will it suffer the same fate as IPv6 and become a "future standard" that'll probably take a really really long time to be fully supported universally ?
-
Answer:
A problem with IPv6 is an instance of the chicken-and-egg problem: until everyone is using it, there is no point. That's not the case with Python 3. For example, if you're a web developer, your customers don't really care if you're using Python 3 or PHP. So you can switch any time you want. The problem may lie with the community, with packages that you may want to use. Not every package written for Python 2 works for Python 3. However, porting libraries to Python 3 proved to be not too hard, thanks to 2to3 and other well-thought things. The idea behind migration to Python 3 is that, for now, all libraries should work with both versions of Python, 2 and 3 (that is, with the help of 2to3, a program which converts source for Python 2 to the modern version). Since you can run several versions of Python on any computer simultaneously, you can use Python 3 as much as you're able to, and fall back to Python 2 if some package you want to use doesn't support Python 3 yet. That means that the ecosystem can move to Python 3 incrementally. In fact, that's already happening. I believe that when major libraries start to embrace Python 3, new libraries are going to be written with that in mind, too. The work in this direction is already being done: for example, Django is going to offer first-class support for Python 3 really soon, in 1.6: https://docs.djangoproject.com/en/dev/releases/1.5/#python-3-support So, you don't have to wait to benefit from Python 3 in your programs. The packages you'd want to use are probably being ported as we speak. However, if you're using some big library or framework, like Django, you'd want to wait a couple of versions before using them with Python 3.
Valentin Golev at Quora Visit the source
Other answers
One could argue that with many important and community significant libraries this is already the situation we are faced with. I'd direct you to Armin Ronacher's from the Pocoo Project (Flask, Jinja2, Werkzeug) wonderful post on the subject. http://lucumr.pocoo.org/2011/12/7/thoughts-on-python3/ This isn't necessarily about being defeatist on the future of 3, but there are significant challenges to adoption. Library developers stand to gain very little from porting their code over since a significant amount of the community is still utilizing 2.6+ in production environments. Several commonplace linux distros that are used to serve today's webapps have 2.7 installed by default (Debian, Ubuntu), with Centos representing default versions even lower. There is a huge community investment into python 2 and the stable path of development from it. Python 3, while a very elegant refinement on the core ideas, makes a lot of breaking changes purely out of the prinicple of the language. It's hard to explain to library developers who must continuously integrate new changes that something as basic as the `print` construct becoming a function must be made, and purely motivated by ideology. If you're curious about some of the motives from Guido himself, I'd direct to his "python regrets" presentation. http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf As a person with a tremendous amount of learning invested with Python, especially in the networking field, I'm hoping we find inventive ways around this problem and start taking version 3 seriously as our future and integrating our patterns into the changes it introduces. Every day we wait is a day NodeJS moves into our stead, at least in the web development sphere.
Mark Grey
Python 3 adaptation has been a long road, but the world has continued to make its way toward Python 3. Syntax change like changing print from a statement to a function is annoying but is actually small stuff. The wrenching change was the shift from ASCII to Unicode. I take heart from seeing the major Linux distributions are actively working on shifting their internal use of Python over to Python 3. The world is slow to change, but it is changing. I'm wondering when the next non-upward-compatible change to Cpython will come along. Change the CPython internals to allow multi-threaded garbage collection? But not too soon.
R. Drew Davis
World domination. (That's applicable to Python3 and IPv6, by the way).
Jim Dennis
Python 2 will be closed completely by 2020. Infact it was 2015 before but guido just extended the lifetime of Python 2.7 till 2020 https://hg.python.org/peps/rev/76d43e52d978 he also tweeted https://twitter.com/gvanrossum/status/455354868916842496 So I guess till 2020 (at most) Python 2 will be there. and thats why nowadays almost all libraries/framework for python support Python3 and PyPy(yeah! this could be the future). PS: Python 4 will be start from 2016.
Anonymous
Related Q & A:
- What will our future be?Best solution by Yahoo! Answers
- What are the future prospects of biotechnology students?Best solution by Yahoo! Answers
- What is the future of SEO in India?Best solution by Yahoo! Answers
- What is the future of money?Best solution by Quora
- What is the future of USA?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.