mirror of
https://github.com/kennethreitz/python-guide.git
synced 2026-06-05 23:00:18 +00:00
Python 2 vs Python 3
This commit is contained in:
@@ -3,23 +3,62 @@ Picking an Interpreter
|
|||||||
|
|
||||||
.. _which-python:
|
.. _which-python:
|
||||||
|
|
||||||
Today (Python 3)
|
The State of Python (2 vs 3)
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If you're choosing a Python interpreter to use, I recommend you use the
|
When choosing a Python interpreter, one looming question is always present:
|
||||||
newest Python 3.x, since every version brings new and improved standard
|
"Should I choose Python 2 or Python 3"? The answer is not as obvious as
|
||||||
library modules, security and bug fixes.
|
one might thing.
|
||||||
|
|
||||||
Only use Python 2 if you have a strong reason to, such as a Python 2
|
|
||||||
exclusive library which has no adequate, Python 3 ready alternative. Use
|
|
||||||
`Can I Use Python 3? <https://caniusepython3.com/>` to check if this is
|
|
||||||
the case.
|
|
||||||
|
|
||||||
Python 2.x is legacy, Python 3.x is the present and future of the language
|
The basic gist of the state of things is as follows:
|
||||||
|
|
||||||
|
1. Python 2.7 has been the standard for Python developers for a *long* time.
|
||||||
|
2. Python 3.x intrudced major controvercial changes to the language, which many developers are unhappy with.
|
||||||
|
3. Python 2.7 will receive security updates for a long while.
|
||||||
|
4. Python 2.x is continually evolving, like Python 2 did in years past.
|
||||||
|
|
||||||
|
So, you can now see why this is not such an easy decision.
|
||||||
|
|
||||||
|
|
||||||
|
Recommendations
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
I'll be blunt:
|
||||||
|
|
||||||
|
|
||||||
|
**Use Python 3 if...**
|
||||||
|
|
||||||
|
- You don't care.
|
||||||
|
- You love Python 3.
|
||||||
|
- You are indifferent towards 2 vs 3.
|
||||||
|
- You don't know which one to use.
|
||||||
|
- You embrace change.
|
||||||
|
|
||||||
|
**Use Python 2 if...**
|
||||||
|
|
||||||
|
- You love Python 2 and are saddened by the future being Python 3.
|
||||||
|
- The statbility requirements of your software would be improved by a language and runtime that never changes.
|
||||||
|
- Software that you depend on requires it.
|
||||||
|
|
||||||
|
|
||||||
|
So.... 3?
|
||||||
|
~~~~~~~~~
|
||||||
|
|
||||||
|
If you're choosing a Python interpreter to use, and aren't opinionated, then I
|
||||||
|
recommend you use the newest Python 3.x, since every version brings new and
|
||||||
|
improved standard library modules, security and bug fixes. Progress is progress.
|
||||||
|
|
||||||
|
Given such, only use Python 2 if you have a strong reason to, such as a Python 2
|
||||||
|
exclusive library which has no adequate Python 3 ready alternative, or you
|
||||||
|
(like me) absolutely love and are inspired by Python 2.
|
||||||
|
|
||||||
|
Check out `Can I Use Python 3? <https://caniusepython3.com/>` to see if any
|
||||||
|
software you're depending on will block your adoption of Python 3.
|
||||||
|
|
||||||
`Further Reading <http://wiki.python.org/moin/Python2orPython3>`_
|
`Further Reading <http://wiki.python.org/moin/Python2orPython3>`_
|
||||||
|
|
||||||
It is possible to `write code that works on Python 2.6, 2.7 and 3.3
|
It is possible to `write code that works on Python 2.6, 2.7, and 3.3
|
||||||
<http://lucumr.pocoo.org/2013/5/21/porting-to-python-3-redux/>`_. This
|
<http://lucumr.pocoo.org/2013/5/21/porting-to-python-3-redux/>`_. This
|
||||||
ranges from trivial to hard depending upon the kind of software
|
ranges from trivial to hard depending upon the kind of software
|
||||||
you are writing; if you're a beginner there are far more important things to
|
you are writing; if you're a beginner there are far more important things to
|
||||||
|
|||||||
Reference in New Issue
Block a user