It’s Python, Not Python 2, Not Python 3!
There’s no “Python 2” or “Python 3”, the language is same as before.
Python 2.x is legacy, Python 3.x is the present and future of the language — Python2 or Python3
This whole debate makes newcomers to run away, it’s confusing, nonsense and more importantly a bubble, fairy dust, it doesn’t exist and it shouldn’t be there, It’s only the Python and that’s it.
If you’re on the older version (“Python 2” as you say), you’re a decade behind, you should have upgraded at 2008.
You wanna say
2to3, or tiny stuff that are deprecated ? If you forget to upgrade you hit those too, no surprise.
This is all it takes to upgrade: https://docs.python.org/3/howto/pyporting.html
People don’t like change, especially companies, they don’t like to change or upgrade, that product manager looks only to end product and not what’s under the hood, no one want to spend time on upgrading, everyone thinks they’re fine where they are. These cannot be the excuse to not update and keep with the latest amazing stuff that are coming in the language every day.
Python is in no way in that direction.
Stop saying “Should I learn Python 2 or Python 3”, just learn Python. It’s the same thing, nothing is there to be afraid of.
The rest is either you want to run your software with an older version of Python (2) or the current version (Not newer, but current!) which last time I checked was 3.5.2 and soon to be 3.6.
Just see if your third party packages are upgraded to use the current version of Python, if not then use the older one. Most of the famous and popular ones are using the current version.
Many say “yes, my current third party dependencies are compatible with the current version, but ‘what if’ in future I need a package that’s not compatible ?” Well, seriously that’s so stupid of that library maintainer.
Python 3 came out 2008, at the moment of writing this, it’s almost a decade and if your third party package has not been updated, then it’s really messed up.
People would line up for a new phone to buy it, always check for OS upgrades, etc… why not Python ? What kind of developer are you that wanna use decade old stuff ?
Current version of Python has many things to offer, tons of them , many things that developers where looking for to have, async await, type annotation and type checking, much better Unicode handling, being faster than before, JIT API right into the CPython, great string formatting and list goes on and on and on. You can check the release notes to get amazed.
Who doesn’t want those new great features right into the language, a fast evolving like Python should not be bashed just because some are lazy to update their legacy code or don’t like the changes.
Don’t slow down your development, don’t patch things up just because you’re not on the current Python version.
Python cures cancer and prevents early death.
To be continued …
Alireza Savand is a Director of Software Engineering at Instavest.com