Date post: | 24-Jan-2015 |
Category: |
Technology |
Upload: | pablo-enfedaque |
View: | 1,090 times |
Download: | 1 times |
{Python 2 vs. Python 3
“event”: “Python BCN Meetup – Beginners session” “author”: “Pablo Enfedaque” “twi6er”: “@pablitoev56”
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
> December 1989: Guido Van Rossum starts Python implementation
> January 1994: Version 1.0 released > October 2000: Version 2.0 released > December 2008: Version 3.0 released
> June 2009: Version 3.1 released > July 2010: Version 2.7 released with backports
> 2014: current versions are 2.7.6 and 3.4
Python versions
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
> December 1989: Guido Van Rossum starts Python implementation
> January 1994: Version 1.0 released > October 2000: Version 2.0 released > December 2008: Version 3.0 released
> June 2009: Version 3.1 released > July 2010: Version 2.7 released with backports
> 2014: current versions are 2.7.6 and 3.4
WTF?!
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Python 3 is backwards incompatible
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
> Backwards incompatibilities
> print and exec become functions
> All classes are new-‐‑style
> Massive usage of generators instead of lists
> All text (str) is Unicode and encoded text is
binary data (bytes)
> Other minor changes in std lib
Python 3.0
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Why Python 3?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Mainly because of encodings
Why Python 3?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Google: Python encoding sucks
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Google: Python 3 sucks
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Really because of encodings??
Why Python 3?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Why should I move to Python 3?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
> Proper encoding > asyncio > enums > Standard library virtualenvs > Exception chaining > Single-‐‑dispatch > uni6est.mock > contextlib > “Be6er” GIL > concurrent.futures > selectors module > Qualified names > …
Python 3.4 new features (vs. 2.7)
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Why people don’t use Python 3?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Why people don’t use Python 3?
No dependencies ported
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Why people don’t use Python 3?
Laziness?
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
> Great features are waiting us in Python 3 > We are beyond half the planned life of Python 2.7
> Python 2.6 is officially retired with 2.6.9 release > Most 3rd party dependencies already in Python 3
> Or we could return to OSS all that we have been given > hZps://caniusepython3.com
> Porting to Python 3 is not such a big deal > In most of the cases
> So, no more excuses
> It’s time to start moving to Python 3
Conclusions
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Conclusions
{ “event”: “Python BCN Meetup”, “author”: “Pablo Enfedaque”, “twi6er”: “@pablitoev56”}
Q&A
Thanks for coming!
Slides:
h6ps://speakerdeck.com/pablito56/python-‐‑2-‐‑vs-‐‑python-‐‑3