18
{ Python 2 vs. Python 3 “event”: Python BCN Meetup – Beginners session“author”: “Pablo Enfedaque“twi6er”: “@pablitoev56

Python 2 vs. Python 3

Embed Size (px)

DESCRIPTION

Lightning talk at Python Bcn Meetup, Beginners session about differences between Python 2 vs. Python 3

Citation preview

Page 1: Python 2 vs. Python 3

{Python  2  vs.  Python  3

“event”:      “Python  BCN  Meetup  –  Beginners  session” “author”:  “Pablo  Enfedaque” “twi6er”:  “@pablitoev56”

Page 2: Python 2 vs. Python 3

{  “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

Page 3: Python 2 vs. Python 3

{  “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?!

Page 4: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Python  3  is backwards  incompatible

Page 5: Python 2 vs. Python 3

{  “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

Page 6: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Why  Python  3?

Page 7: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Mainly  because  of  encodings

Why  Python  3?

Page 8: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Google:  Python  encoding  sucks

Page 9: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Google:  Python  3  sucks

Page 10: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Really  because  of  encodings??

Why  Python  3?

Page 11: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Why  should  I  move  to  Python  3?

Page 12: Python 2 vs. 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)

Page 13: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Why  people  don’t  use  Python  3?

Page 14: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Why  people  don’t  use  Python  3?

No  dependencies  ported

Page 15: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Why  people  don’t  use  Python  3?

Laziness?

Page 16: Python 2 vs. Python 3

{  “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

Page 17: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Conclusions

Page 18: Python 2 vs. Python 3

{  “event”:  “Python  BCN  Meetup”,  “author”:  “Pablo  Enfedaque”,  “twi6er”:  “@pablitoev56”}

Q&A

Thanks  for  coming!

Slides:  

h6ps://speakerdeck.com/pablito56/python-­‐‑2-­‐‑vs-­‐‑python-­‐‑3