Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
State of Python
     January, 2010

     Richard Jones

  richard@python.org
Some History
Some History
•   Development started December, 1989
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991

•   1.5.2 released April, 1999
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991

•   1.5.2 released April, 1999

• ...
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991

•   1.5.2 released April, 1999

• ...
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991

•   1.5.2 released April, 1999

• ...
Some History
•   Development started December, 1989

•   0.9.0 released February, 1991

•   1.5.2 released April, 1999

• ...
What’s New In 3.1
What’s New In 3.13.0
What We Utterly
Broke In 3.0 With No
   Regard For The
   Consequences
What’s New In 3.0
What’s New In 3.0

• print() and exec() are still functions
What’s New In 3.0

• print() and exec() are still functions
• dict.keys(), dict.items(), dict.values(), map(),
  filter() a...
What’s New In 3.0

• print() and exec() are still functions
• dict.keys(), dict.items(), dict.values(), map(),
  filter() a...
What’s New In 3.0

• print() and exec() are still functions
• dict.keys(), dict.items(), dict.values(), map(),
  filter() a...
What’s New In 3.0
What’s New In 3.0


• exception chaining is still there
What’s New In 3.0


• exception chaining is still there
• the standard library is still better-organised
What’s New In 3.0
What’s New In 3.0

• old-style classes are still gone
What’s New In 3.0

• old-style classes are still gone
• cmp(), reduce(), apply(), coerce(), callable() and
  raw_input() a...
What’s New In 3.0

• old-style classes are still gone
• cmp(), reduce(), apply(), coerce(), callable() and
  raw_input() a...
What’s New In 3.0

• old-style classes are still gone
• cmp(), reduce(), apply(), coerce(), callable() and
  raw_input() a...
What’s New In 3.0 / 2.6
What’s New In 3.0 / 2.6

• multiprocessing
What’s New In 3.0 / 2.6

• multiprocessing
• io and json
What’s New In 3.0 / 2.6

• multiprocessing
• io and json
• tkinter.ttk
  (new complementary widgets, styling
  through “st...
What’s New In 3.0 / 2.6
What’s New In 3.0 / 2.6
• advanced string formatting
What’s New In 3.0 / 2.6
• advanced string formatting
• Abstract Base Classes
  (and function annotation in 3.0)
What’s New In 3.0 / 2.6
• advanced string formatting
• Abstract Base Classes
  (and function annotation in 3.0)

• 0o21 ==...
What’s New In 3.0 / 2.6
• advanced string formatting
• Abstract Base Classes
  (and function annotation in 3.0)

• 0o21 ==...
What’s New In 3.0 / 2.6
What’s New In 3.0 / 2.6

• added numbers, fractions, cmath, ssl
  modules
What’s New In 3.0 / 2.6

• added numbers, fractions, cmath, ssl
  modules
• new toys in math, functools, itertools,
  coll...
What’s New In 3.1
What’s New In 3.1
• python can execute packages (and zip files)
What’s New In 3.1
• python can execute packages (and zip files)
• unittest supports skipping tests
What’s New In 3.1
• python can execute packages (and zip files)
• unittest supports skipping tests
• sys.version_info is a ...
What’s New In 3.1
• python can execute packages (and zip files)
• unittest supports skipping tests
• sys.version_info is a ...
What’s New In 3.1 / 2.7
What’s New In 3.1 / 2.7
• thanks David Gay:
  >>> 1.1
  1.1000000000000001

  becomes...
  >>> 1.1
  1.1
What’s New In 3.1 / 2.7
• thanks David Gay:
  >>> 1.1
  1.1000000000000001

  becomes...
  >>> 1.1
  1.1


• still doesn’t...
What’s New In 3.1 / 2.7
What’s New In 3.1 / 2.7

• io & json rewritten in C
What’s New In 3.1 / 2.7

• io & json rewritten in C
• memoryview object (mutable byte array)
What’s New In 3.1 / 2.7

• io & json rewritten in C
• memoryview object (mutable byte array)
• ordered dictionary
LESS BUGS
What’s New In 3.1


 STILL B0RKS UR CODEZ!
Books

• Python 3 for Absolute Beginners
  by Tim Hall and J-P Stacey



• Programming in Python 3 (Second Edition)
  by M...
Books

• Dive Into Python 3
  by Mark Pilgrim


  Python 3 Patterns, Recipes and Idioms
  by Bruce Eckel and Friends
Books


• Invent Your Own Computer Games with
  Python (Second Edition)
  by Albert Sweigart
Other Books in 2009


• IronPython in Action
  by Michael Foord
Other Books in 2009
• Head First Programming
  by Paul Barry and David Griffiths



• Python for Software Design: How to Th...
Other Books in 2009
• Gray Hat Python: Python Programming for
  Hackers and Reverse Engineers
  by Justin Seitz


• Hello ...
Python 2.7
Python 2.7

• expected in June - alpha 2 out now
Python 2.7

• expected in June - alpha 2 out now
• includes backporting from 3.1
Python 2.7

• expected in June - alpha 2 out now
• includes backporting from 3.1
• will be the last 2.x release
IronPython
IronPython

• Runs on the .NET CLR
IronPython

• Runs on the .NET CLR
• 2.6 released December 2009
IronPython

• Runs on the .NET CLR
• 2.6 released December 2009
• Visual Studio integration higher priority
  than IronPyt...
Jython
Jython

• Python compiled to the Java VM
Jython

• Python compiled to the Java VM
• 2.5.1 released September 2009
Jython

• Python compiled to the Java VM
• 2.5.1 released September 2009
• target CPython 2.7 for next major release
PyPy


• Python in Python
• Michael Hudson will talk about that
Migration Progress
Migration Progress
• SQLAlchemy (so db layers too)
Migration Progress
• SQLAlchemy (so db layers too)
• Distribute (was “setuptools”)
Migration Progress
• SQLAlchemy (so db layers too)
• Distribute (was “setuptools”)
• pygame reloaded (pgreloaded)
Migration Progress
• SQLAlchemy (so db layers too)
• Distribute (was “setuptools”)
• pygame reloaded (pgreloaded)
• Django...
Migration Progress
• SQLAlchemy (so db layers too)
• Distribute (was “setuptools”)
• pygame reloaded (pgreloaded)
• Django...
Migration Progress
Migration Progress
• http://wiki.python.org/moin/PortingPythonToPy3k
Migration Progress
• http://wiki.python.org/moin/PortingPythonToPy3k
• python-porting mailing list
  http://mail.python.or...
Migration Progress
• http://wiki.python.org/moin/PortingPythonToPy3k
• python-porting mailing list
  http://mail.python.or...
2to3c


• an implementation of Python's 2to3 for C
  code
3to2


• GSoC project
• http://bitbucket.org/amentajo/lib3to2/
Language Moratorium

Temporary suspension of all changes to
 the Python language syntax, semantics,
and built-ins for a pe...
Python 3 speedup
Python 3 speedup
Python 3 speedup


• Unladen Swallow to be merged into py3k
  (Google’s efforts to speed up Python)
Python 3 speedup


• Unladen Swallow to be merged into py3k
  (Google’s efforts to speed up Python)
• A more rational GIL
Community
Community

• Kiwi PyCon (woot)
Community

• Kiwi PyCon (woot)
• planet.python.org
Community

• Kiwi PyCon (woot)
• planet.python.org
• www.python-forum.org/pythonforum
Community

• Kiwi PyCon (woot)
• planet.python.org
• www.python-forum.org/pythonforum
• PyPI comments
http://au.pycon.org/
Skulpt
Skulpt

• http://www.skulpt.org/
Skulpt

• http://www.skulpt.org/
• entirely in-browser implementation of
  Python
Skulpt

• http://www.skulpt.org/
• entirely in-browser implementation of
  Python
• No preprocessing, plugins, or server-s...
Shed Skin 0.3
• Python-to-C++ compiler
• improved type inference
• support for 'map', 'filter', 'reduce', the 'with'
  stat...
tinypy


• cython, pyrex
• tinpy → C++ → XCode → iPhone
Distribute & pip


• replaces setuptools and easy_install
• Distribute compatible with python 3
  ... pip soon
Web Stuff
Web Stuff
• Django 1.2 on the way (alpha Jan 2010)
  (full Python 3 support in a year or so)
Web Stuff
• Django 1.2 on the way (alpha Jan 2010)
  (full Python 3 support in a year or so)
• TurboGears 2.1 coming (2.0 ...
Web Stuff
• Django 1.2 on the way (alpha Jan 2010)
  (full Python 3 support in a year or so)
• TurboGears 2.1 coming (2.0 ...
Web Stuff
• Django 1.2 on the way (alpha Jan 2010)
  (full Python 3 support in a year or so)
• TurboGears 2.1 coming (2.0 ...
Web Stuff

• 6th Plone Conf 2009
• 2nd DjangoCon 2009
• Django Ski 2010
virtualenv
virtualenv

• stand-alone python environments
virtualenv

• stand-alone python environments
• with or without system extensions
virtualenv

• stand-alone python environments
• with or without system extensions
• use it!
State of Python (2010)
State of Python (2010)
State of Python (2010)
State of Python (2010)
Upcoming SlideShare
Loading in …5
×

State of Python (2010)

8,194 views

Published on

A (somewhat rambling) presentation giving an overview of the state of the Python programming language in January, 2010.

Published in: Technology, Education

State of Python (2010)

  1. State of Python January, 2010 Richard Jones richard@python.org
  2. Some History
  3. Some History • Development started December, 1989
  4. Some History • Development started December, 1989 • 0.9.0 released February, 1991
  5. Some History • Development started December, 1989 • 0.9.0 released February, 1991 • 1.5.2 released April, 1999
  6. Some History • Development started December, 1989 • 0.9.0 released February, 1991 • 1.5.2 released April, 1999 • 2.0 released October, 2000
  7. Some History • Development started December, 1989 • 0.9.0 released February, 1991 • 1.5.2 released April, 1999 • 2.0 released October, 2000 • py3k branched & PEP 3000 March, 2006
  8. Some History • Development started December, 1989 • 0.9.0 released February, 1991 • 1.5.2 released April, 1999 • 2.0 released October, 2000 • py3k branched & PEP 3000 March, 2006 • 3.0 released November 25, 2008
  9. Some History • Development started December, 1989 • 0.9.0 released February, 1991 • 1.5.2 released April, 1999 • 2.0 released October, 2000 • py3k branched & PEP 3000 March, 2006 • 3.0 released November 25, 2008 • 3.1 released June 27th, 2009
  10. What’s New In 3.1
  11. What’s New In 3.13.0
  12. What We Utterly Broke In 3.0 With No Regard For The Consequences
  13. What’s New In 3.0
  14. What’s New In 3.0 • print() and exec() are still functions
  15. What’s New In 3.0 • print() and exec() are still functions • dict.keys(), dict.items(), dict.values(), map(), filter() and zip() still return iterators
  16. What’s New In 3.0 • print() and exec() are still functions • dict.keys(), dict.items(), dict.values(), map(), filter() and zip() still return iterators • text is still unicode and files still read bytes
  17. What’s New In 3.0 • print() and exec() are still functions • dict.keys(), dict.items(), dict.values(), map(), filter() and zip() still return iterators • text is still unicode and files still read bytes • as, with, True, False and None are still keywords
  18. What’s New In 3.0
  19. What’s New In 3.0 • exception chaining is still there
  20. What’s New In 3.0 • exception chaining is still there • the standard library is still better-organised
  21. What’s New In 3.0
  22. What’s New In 3.0 • old-style classes are still gone
  23. What’s New In 3.0 • old-style classes are still gone • cmp(), reduce(), apply(), coerce(), callable() and raw_input() are still the way of the dodo
  24. What’s New In 3.0 • old-style classes are still gone • cmp(), reduce(), apply(), coerce(), callable() and raw_input() are still the way of the dodo • `` and <> are also still gone
  25. What’s New In 3.0 • old-style classes are still gone • cmp(), reduce(), apply(), coerce(), callable() and raw_input() are still the way of the dodo • `` and <> are also still gone • string exceptions are still no more
  26. What’s New In 3.0 / 2.6
  27. What’s New In 3.0 / 2.6 • multiprocessing
  28. What’s New In 3.0 / 2.6 • multiprocessing • io and json
  29. What’s New In 3.0 / 2.6 • multiprocessing • io and json • tkinter.ttk (new complementary widgets, styling through “style sheets”)
  30. What’s New In 3.0 / 2.6
  31. What’s New In 3.0 / 2.6 • advanced string formatting
  32. What’s New In 3.0 / 2.6 • advanced string formatting • Abstract Base Classes (and function annotation in 3.0)
  33. What’s New In 3.0 / 2.6 • advanced string formatting • Abstract Base Classes (and function annotation in 3.0) • 0o21 == 17 0b1101 == 13
  34. What’s New In 3.0 / 2.6 • advanced string formatting • Abstract Base Classes (and function annotation in 3.0) • 0o21 == 17 0b1101 == 13 • Class decorators
  35. What’s New In 3.0 / 2.6
  36. What’s New In 3.0 / 2.6 • added numbers, fractions, cmath, ssl modules
  37. What’s New In 3.0 / 2.6 • added numbers, fractions, cmath, ssl modules • new toys in math, functools, itertools, collections
  38. What’s New In 3.1
  39. What’s New In 3.1 • python can execute packages (and zip files)
  40. What’s New In 3.1 • python can execute packages (and zip files) • unittest supports skipping tests
  41. What’s New In 3.1 • python can execute packages (and zip files) • unittest supports skipping tests • sys.version_info is a named tuple >>> sys.version_info sys.version_info(major=3, minor=1, micro=1, releaselevel='final', serial=0)
  42. What’s New In 3.1 • python can execute packages (and zip files) • unittest supports skipping tests • sys.version_info is a named tuple >>> sys.version_info sys.version_info(major=3, minor=1, micro=1, releaselevel='final', serial=0) • improved Python 2 pickle support
  43. What’s New In 3.1 / 2.7
  44. What’s New In 3.1 / 2.7 • thanks David Gay: >>> 1.1 1.1000000000000001 becomes... >>> 1.1 1.1
  45. What’s New In 3.1 / 2.7 • thanks David Gay: >>> 1.1 1.1000000000000001 becomes... >>> 1.1 1.1 • still doesn’t make this correct: 1.1 + 2.2 = 3.3
  46. What’s New In 3.1 / 2.7
  47. What’s New In 3.1 / 2.7 • io & json rewritten in C
  48. What’s New In 3.1 / 2.7 • io & json rewritten in C • memoryview object (mutable byte array)
  49. What’s New In 3.1 / 2.7 • io & json rewritten in C • memoryview object (mutable byte array) • ordered dictionary
  50. LESS BUGS
  51. What’s New In 3.1 STILL B0RKS UR CODEZ!
  52. Books • Python 3 for Absolute Beginners by Tim Hall and J-P Stacey • Programming in Python 3 (Second Edition) by Mark Summerfield
  53. Books • Dive Into Python 3 by Mark Pilgrim Python 3 Patterns, Recipes and Idioms by Bruce Eckel and Friends
  54. Books • Invent Your Own Computer Games with Python (Second Edition) by Albert Sweigart
  55. Other Books in 2009 • IronPython in Action by Michael Foord
  56. Other Books in 2009 • Head First Programming by Paul Barry and David Griffiths • Python for Software Design: How to Think Like a Computer Scientist by Allen B. Downey
  57. Other Books in 2009 • Gray Hat Python: Python Programming for Hackers and Reverse Engineers by Justin Seitz • Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande
  58. Python 2.7
  59. Python 2.7 • expected in June - alpha 2 out now
  60. Python 2.7 • expected in June - alpha 2 out now • includes backporting from 3.1
  61. Python 2.7 • expected in June - alpha 2 out now • includes backporting from 3.1 • will be the last 2.x release
  62. IronPython
  63. IronPython • Runs on the .NET CLR
  64. IronPython • Runs on the .NET CLR • 2.6 released December 2009
  65. IronPython • Runs on the .NET CLR • 2.6 released December 2009 • Visual Studio integration higher priority than IronPython 3
  66. Jython
  67. Jython • Python compiled to the Java VM
  68. Jython • Python compiled to the Java VM • 2.5.1 released September 2009
  69. Jython • Python compiled to the Java VM • 2.5.1 released September 2009 • target CPython 2.7 for next major release
  70. PyPy • Python in Python • Michael Hudson will talk about that
  71. Migration Progress
  72. Migration Progress • SQLAlchemy (so db layers too)
  73. Migration Progress • SQLAlchemy (so db layers too) • Distribute (was “setuptools”)
  74. Migration Progress • SQLAlchemy (so db layers too) • Distribute (was “setuptools”) • pygame reloaded (pgreloaded)
  75. Migration Progress • SQLAlchemy (so db layers too) • Distribute (was “setuptools”) • pygame reloaded (pgreloaded) • Django (mostly done)
  76. Migration Progress • SQLAlchemy (so db layers too) • Distribute (was “setuptools”) • pygame reloaded (pgreloaded) • Django (mostly done) • numpy has a plan http://www.scipy.org/Python3k
  77. Migration Progress
  78. Migration Progress • http://wiki.python.org/moin/PortingPythonToPy3k
  79. Migration Progress • http://wiki.python.org/moin/PortingPythonToPy3k • python-porting mailing list http://mail.python.org/mailman/listinfo/python-porting
  80. Migration Progress • http://wiki.python.org/moin/PortingPythonToPy3k • python-porting mailing list http://mail.python.org/mailman/listinfo/python-porting • a bunch of very useful reference code http://code.google.com/p/python-incompatibility/
  81. 2to3c • an implementation of Python's 2to3 for C code
  82. 3to2 • GSoC project • http://bitbucket.org/amentajo/lib3to2/
  83. Language Moratorium Temporary suspension of all changes to the Python language syntax, semantics, and built-ins for a period of at least two years from the release of Python 3.1
  84. Python 3 speedup
  85. Python 3 speedup
  86. Python 3 speedup • Unladen Swallow to be merged into py3k (Google’s efforts to speed up Python)
  87. Python 3 speedup • Unladen Swallow to be merged into py3k (Google’s efforts to speed up Python) • A more rational GIL
  88. Community
  89. Community • Kiwi PyCon (woot)
  90. Community • Kiwi PyCon (woot) • planet.python.org
  91. Community • Kiwi PyCon (woot) • planet.python.org • www.python-forum.org/pythonforum
  92. Community • Kiwi PyCon (woot) • planet.python.org • www.python-forum.org/pythonforum • PyPI comments
  93. http://au.pycon.org/
  94. Skulpt
  95. Skulpt • http://www.skulpt.org/
  96. Skulpt • http://www.skulpt.org/ • entirely in-browser implementation of Python
  97. Skulpt • http://www.skulpt.org/ • entirely in-browser implementation of Python • No preprocessing, plugins, or server-side support required
  98. Shed Skin 0.3 • Python-to-C++ compiler • improved type inference • support for 'map', 'filter', 'reduce', the 'with' statement • many more library modules supported • several important optimizations
  99. tinypy • cython, pyrex • tinpy → C++ → XCode → iPhone
  100. Distribute & pip • replaces setuptools and easy_install • Distribute compatible with python 3 ... pip soon
  101. Web Stuff
  102. Web Stuff • Django 1.2 on the way (alpha Jan 2010) (full Python 3 support in a year or so)
  103. Web Stuff • Django 1.2 on the way (alpha Jan 2010) (full Python 3 support in a year or so) • TurboGears 2.1 coming (2.0 was June 2009)
  104. Web Stuff • Django 1.2 on the way (alpha Jan 2010) (full Python 3 support in a year or so) • TurboGears 2.1 coming (2.0 was June 2009) • CherryPy 3.1.2 in April 2009 3.2 due out soon supports Python 3
  105. Web Stuff • Django 1.2 on the way (alpha Jan 2010) (full Python 3 support in a year or so) • TurboGears 2.1 coming (2.0 was June 2009) • CherryPy 3.1.2 in April 2009 3.2 due out soon supports Python 3 • Pylons 0.9.7 in February 2009 Python 3 support (Pylons 1.1) mid-2010?
  106. Web Stuff • 6th Plone Conf 2009 • 2nd DjangoCon 2009 • Django Ski 2010
  107. virtualenv
  108. virtualenv • stand-alone python environments
  109. virtualenv • stand-alone python environments • with or without system extensions
  110. virtualenv • stand-alone python environments • with or without system extensions • use it!

×