Snakes on the Web
Upcoming SlideShare
Loading in...5
×
 

Snakes on the Web

on

  • 8,818 views

The history and future of Python web development. A talk given at PyCon Argentina and PyCon Brazil, 2009.

The history and future of Python web development. A talk given at PyCon Argentina and PyCon Brazil, 2009.

Statistics

Views

Total Views
8,818
Views on SlideShare
8,806
Embed Views
12

Actions

Likes
12
Downloads
119
Comments
0

3 Embeds 12

http://www.slideshare.net 10
http://python.rk.edu.pl 1
http://www.python.rk.edu.pl 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Snakes on the Web Snakes on the Web Presentation Transcript

    • Snakes on the Web: The history and future of Python on the web Jacob Kaplan-Moss http://jacobian.org/TO http://www.flickr.com/photos/kejhu/3751877257
    • Web development sucks.
    • “ How can I make this suck less? ”
    • 1. What sucks now? 2. How will we fix it? 3. Can we fix it with Python?
    • In the beginning… http://www.flickr.com/photos/tonythemisfit/2904911703
    • Hand-rolled HTML “The Stone Age”
    • The Stone Age http://www.flickr.com/photos/schoschie/3421072476/
    • Suck.
    • “ What if we didn’t have to write HTML by hand? ”
    • CGI “The Bronze Age”
    • Suck.
    • “ How can we make CGI better? ”
    • (Not really a big question.) http://www.flickr.com/photos/randomurl/446209957/
    • PHP “The Iron Age”
    • Same idea, (slightly) better tech. http://www.flickr.com/photos/jerhoyet/2377140741
    • Page-oriented http://www.flickr.com/photos/just_jump/2972461681
    • “ “What if we thought of these as applications, not pages?” ”
    • Frameworks “The Industrial Revolution”
    • The modern web framework:
    • High-level http://www.flickr.com/photos/nikonvscanon/2128705916
    • Application-oriented http://www.flickr.com/photos/joelaz/2868356069
    • http://www.flickr.com/photos/ppdigital/2329405081/ Large building blocks
    • http://www.flickr.com/photos/jasephotos/2913135232/ Rapid development
    • http://www.flickr.com/photos/nattu/1190083977 Fun!
    • What’s next?
    • What sucks?
    • Interoperability sucks.
    • Frameworks: good. http://www.flickr.com/photos/amberandclint/3266859324/
    • Lock-in: bad! http://www.flickr.com/photos/striatic/2191404675/
    • Rule 1: Don’t piss off your users.
    • Software becomes domain-specific.
    • Cede control gracefully. http://www.flickr.com/photos/aidan_jones/3575000735
    • Framework inter-op: http://www.flickr.com/photos/kpwerker/421386062/
    • Django’s not helping. http://www.flickr.com/photos/mafleen/1694900141/
    • WSGI sucks. http://www.flickr.com/photos/jacobian/408227408
    • Rack’s better. http://www.flickr.com/photos/lependu/3563742168/
    • Gateway ≠ API
    • Inter-language inter-op:
    • VMs, Proxies, SOA, ROA, …
    • Gateway ≠ API !
    • http://www.flickr.com/photos/vgm8383/2381791019/ This’ll be hard to fix
    • Disparate, mostly volunteer communities.
    • Little overlap.
    • Rich applications suck.
    • HTML 5
    • The best thing to happen to web frameworks?
    • Current frameworks don’t fit. http://www.flickr.com/photos/oskay/156280584/
    • State of the art:
    • 1. Parallel MVC stacks Lots of work to keep in sync.
    • 2. Coupled frameworks (GWT, Cappuccino, SproutCore)
    • 280slides Create beautiful presentations, access them from anywhere, and share them with the world. With 280 Slides, there's no software to download and nothing to pay for – and when you're done building your presentation you can share it any way you like.
    • 280 Slides: a site so complicated it needed a new language!
    • Python?
    • Deployment sucks.
    • Writing the app is easy…
    • The rest is hard!
    • • API Metering • Distributed Log storage, analysis • Backups & Snapshots • Graphing • Counters • HTTP Caching • Cloud/Cluster Management Tools • Input/Output Filtering • Instrumentation/Monitoring • Memory Caching • Failover • Non-relational Key Stores • Node addition/removal and hashing • Rate Limiting • Auto-scaling for cloud resources • Relational Storage • CSRF/XSS Protection • Queues • Data Retention/Archival • Rate Limiting • Deployment Tools • Real-time messaging (XMPP) • Multiple Devs, Staging, Prod • Search • Data model upgrades • Ranging • Rolling deployments • Geo • Multiple versions (selective beta) • Sharding • Bucket Testing • Smart Caching • Rollbacks • Dirty-table management • CDN Management • Distributed File Storage http://randomfoo.net/2009/01/28/infrastructure-for-modern-web-sites
    • Lots of pieces http://www.flickr.com/photos/restlessglobetrotter/448362507/
    • Huge opportunity http://www.flickr.com/photos/nuclearsummer/2665337803/
    • Python’s been a very good glue language…
    • It could be again.
    • Scaling sucks.
    • Web audiences
    • Complexity
    • Traffic
    • Generic doesn’t scale.
    • Generic Specific Simple Complex
    • Specific Generic My first blog Simple Complex
    • Specific Generic Public launch My first blog Simple Complex
    • Specific Average site Generic Public launch My first blog Simple Complex
    • Specific Twitter Average site Generic Public launch My first blog Simple Complex
    • Specific Twitter Frameworks Average site Generic Public launch My first blog Simple Complex
    • Most sites aren’t big.
    • http://www.flickr.com/photos/b-tal/163450213/ What do we do?
    • Concurrency sucks.
    • All roads lead to multi-core. http://www.flickr.com/photos/marc_buehler/3053243413
    • I’m scared. http://www.flickr.com/photos/amatuer_44060/2831112854/
    • Nehalem
    • UltraSPARC T2
    • 128 hardware threads
    • http://www.flickr.com/photos/daninrgb/3406117892 Ted thinks we’re screwed
    • StartServers
128
    • I don’t think so.
    • Lots of exciting work in concurrency today:
    • Actors STM Persistent data structures Dataflow Tuple spaces
    • Ted Leung, A survey of concurrency constructs http://tinyurl.com/mmbqe6
    • Scala Erlang Clojure Haskell
    • Python?
    • Unladen Swallow?
    • No more GIL!
    • No more GIL?
    • Better threads. http://www.flickr.com/photos/splityarn/3469596708/
    • Threading sucks. http://www.flickr.com/photos/sillydog/9844703/
    • I want actors! (Or STM, or whatever.)
    • Help! http://www.flickr.com/photos/zaia/3475695085
    • 2020
    • I want to be using Python!
    • Let’s make Python kick ass in 2020.
    • “ Good software takes ten years. Get used to it. — Joel Spolsky ” http://tinyurl.com/ca4pr
    • So we need to start now.
    • 1. Better inter-op.
    • WSGI 2
    • Django needs to do better.
    • We need leaders. http://www.flickr.com/photos/salimfadhley/26306549
    • http://www.flickr.com/photos/psd/3649586425/ A BDFL?
    • 2. Get in front of HTML 5.
    • 3. Rethink web development, again.
    • Pages
    • Applications
    • Sites
    • Full deployment stack, highly integrated, centered around WSGI 2?
    • Yes, please!
    • 4. Scale from day 1.
    • Be skeptical. http://www.flickr.com/photos/colorblindpicaso/2747637336
    • Plan to be replaced. http://www.flickr.com/photos/taurusaficionado/2099239684
    • Holy crap please give me better concurrency!
    • Thank you! Me: Jacob Kaplan-Moss This talk: http://jacobian.org/TO Email: jacob@jacobian.org Twitter: @jacobian