PyCon US 2009: Challenges and Opportunities for Python

1,389 views

Published on

Invited Talk at PyCon 2009

Video on blip.tv at: http://pycon.blip.tv/file/1947412/

We are moving firmly back into a "polyglot" world in terms of programming languages. This presents great opportunities for Python (and other dynamic languages) as well as challenges. In this talk I'll be discussing some of the challenges and opportunities that I see for Python, based on my experience with dynamic language runtimes at Sun.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,389
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
63
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

PyCon US 2009: Challenges and Opportunities for Python

  1. 1. Challenges and Opportunities for Python Ted Leung Sun Microsystems
  2. 2. Scala?
  3. 3. Scala? Haskell?
  4. 4. Scala? Haskell? Erlang?
  5. 5. PHP - 9.4% Python - 5.2% JavaScript - 3.6% Perl - 3.4% Ruby - 2.6%
  6. 6. 30% 22.5% 15% 7.5% 0% Java C# C Dynamic Java C# C PHP Python Javascript Perl Ruby
  7. 7. Evans Data Report
  8. 8. O’Reilly Book Sales
  9. 9. Google AppEngine Beta 100,000 signups
  10. 10. PyCon Attendance 1100 825 550 275 0 2004 2005 2006 2007 2008 2009
  11. 11. http://flickr.com/photos/kk/1295074084/
  12. 12. http://www.flickr.com/photos/swamibu/1407809687/
  13. 13. “All Cloud Computing applications will be written in dynamic languages” - Some Analyst
  14. 14. Security
  15. 15. Monitoring
  16. 16. libc.so.1`_write+0x15 libc.so.1`_fflush_u+0x36 libc.so.1`fflush+0x43 libpython2.4.so.1.0`file_flush+0x2a libpython2.4.so.1.0`call_function+0x32a libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf [ build/proto/lib/python/mercurial/transaction.py:49 (add) ] libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 libpython2.4.so.1.0`fast_function+0x112 libpython2.4.so.1.0`call_function+0xda libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf [ build/proto/lib/python/mercurial/revlog.py:1137 (addgroup) ] libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 libpython2.4.so.1.0`fast_function+0x112 libpython2.4.so.1.0`call_function+0xda libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf [ build/proto/lib/python/mercurial/localrepo.py:1849 (addchangegroup) ] libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 libpython2.4.so.1.0`fast_function+0x112 libpython2.4.so.1.0`call_function+0xda libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf [ build/proto/lib/python/mercurial/localrepo.py:1345 (pull) ] libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 libpython2.4.so.1.0`fast_function+0x112
  17. 17. Elasticity
  18. 18. http://www.flickr.com/photos/aloshbennett/3209564747/
  19. 19. Cores != Threads
  20. 20. 16 threads
  21. 21. 128 threads
  22. 22. Transactional Memory
  23. 23. Treat main memory as a database
  24. 24. An MVCC database
  25. 25. People understand transactions Transactions compose
  26. 26. Inefficient Non abortable operations - like I/O Non-transactional code
  27. 27. !quot;#$%&'(%)*quot;+quot;,-./* !
  28. 28. Actors
  29. 29. http://www.flickr.com/photos/leeander/3172415460/
  30. 30. Futures
  31. 31. A=Future(function, arg1, arg2 ...)
  32. 32. MapReduce
  33. 33. Persistent Data Structures
  34. 34. Tuple Spaces
  35. 35. ABP work stealing
  36. 36. http://www.flickr.com/photos/kgradinger/275818876/
  37. 37. serverjs
  38. 38. http://www.flickr.com/photos/dos82/3047823578/
  39. 39. http://www.flickr.com/photos/bitzcelt/2903751010/
  40. 40. Do we want to? http://flickr.com/photos/kk/1295074084/
  41. 41. distutils Paver zc.buildout easy_install setuptools pip virtualenv http://www.flickr.com/photos/jow/2850092362/
  42. 42. Py3K
  43. 43. OMG!
  44. 44. http://flickr.com/photos/laughingsquid/218983827/ Scott Beale / LaughingSquid.com
  45. 45. http://flickr.com/photos/mojodenbowsphotostudio/95796251/
  46. 46. Do we want to? http://flickr.com/photos/kk/1295074084/
  47. 47. Thanks! ted.leung@sun.com http://www.sauria.com/blog http://twitter.com/twleung

×