pycon us 2009: challenges and opportunities for python

60
Challenges and Opportunities for Python Ted Leung Sun Microsystems

Upload: ted-leung

Post on 15-Jul-2015

1.141 views

Category:

Technology


0 download

TRANSCRIPT

Challengesand

Opportunitiesfor

PythonTed Leung

Sun Microsystems

Scala?

Scala?

Haskell?

Scala?

Haskell?

Erlang?

PHP - 9.4%Python - 5.2%

JavaScript - 3.6%Perl - 3.4%Ruby - 2.6%

0%

7.5%

15%

22.5%

30%

Java C# C Dynamic

Java C# C PHPPython Javascript Perl Ruby

Evans Data Report

O’Reilly Book Sales

Google AppEngine Beta

100,000 signups

0

275

550

825

1100

2004 2005 2006 2007 2008 2009

PyCon Attendance

“All Cloud Computing applicationswill be written in dynamic languages”

- Some Analyst

Security

Monitoring

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

Elasticity

Cores != Threads

16 threads

128 threads

Transactional Memory

Treat main memory as a database

An MVCC database

People understand transactions

Transactions compose

Inefficient

Non abortable operations - like I/O

Non-transactional code

!

!"#$%&'(%)*"+",-./*

Actors

Futures

A=Future(function, arg1, arg2 ...)

MapReduce

Persistent Data Structures

Tuple Spaces

ABP work stealing

serverjs

Do we want to?

http://flickr.com/photos/kk/1295074084/

http://www.flickr.com/photos/jow/2850092362/

easy_install

setuptools pip

zc.buildout

virtualenv

distutils Paver

Py3K

OMG!

http://flickr.com/photos/laughingsquid/218983827/ Scott Beale / LaughingSquid.com

Do we want to?

http://flickr.com/photos/kk/1295074084/