KEMBAR78
Why Django | PDF
Why Django?



             IDAN GAZIT
  a web developer at   pixane.com
                  hosted by
I COME FROM AMERICA
my Hebrew is not perfect




       http://www.flickr.com/photos/spornographer/3863184574/
WHY FRAMEWORKS?
ONCE UPON A TIME…
       HTML
     JavaScript
ONCE UPON A TIME…
       HTML
     JavaScript
        CSS
        PHP
WEB DEVELOPMENT
   HTML         Security
 JavaScript    Monitoring
    CSS            API
  Caching        Search
  Testing         SEO
Deployment    Task Queues
THE STACK GETS BIGGER
            every year.
          http://www.flickr.com/photos/heloise/84894905
SCALE
TRAFFIC
TRAFFIC
TRAFFIC
VS.

TRAFFIC
VS.

  TRAFFIC
COMPLEXITY
DON’T REINVENT THE WHEEL
             http://www.flickr.com/photos/cuppini/471050299
Django Reinhardt
three-fingered jazz guitarist
Lawrence Journal-World
a newspaper in Kansas, USA
Newsroom
      rapid-response
http://www.flickr.com/photos/victoriapeckham/261126382/
2003       2005
Created   Open-Sourced
2010
4.7 million hits/month
on djangoproject.com
source: http://bit.ly/django_community_2010
2010
16,000 registered users
  on Google Groups
source: http://bit.ly/django_community_2010
PRODUCTION-READY?
MATURE
documentation, release process
MATURE
documentation, release process

    CONSERVATIVE
 committers and code change
MATURE
documentation, release process

    CONSERVATIVE
 committers and code change

          STABLE
backwards-compatibility policy
michaelmoore.com
  rebuilt in 5 weeks
studionow.com
  sold to AOL
  $36.5 million
urbanairship.com
55 million push notifications served
 to 9 million installed iPhone apps.
everyblock.com
        hyperlocal news
acquired by msnbc.com in 2009
COULD I DO IT WITH _____?
           YES!
CAKEPHP
ASP.NET MVC
RUBY ON RAILS
  DJANGO
WHY DJANGO?
IS
IS
AWESOME
LIKE FUZZY SLIPPERS
   (pedicure optional)
        http://www.flickr.com/photos/rdoyle/463363816
PYTHON FEATURES

» Readable   syntax
» Dynamically      typed
» High-level   OO (everything is an obj)
» Introspection

» Easy   interop
» Cross-platform
ATTRACT GREAT TALENT
 smart, passionate developers
STANDARDS
a few constraints are good!
THOUSANDS OF LIBRARIES
     “Batteries Included”
             PyPI
INTEROP
    Legacy systems
Existing code & services
GOOGLE APPENGINE
        Python
   (Django optional)
TESTING
baked into the standard library
*

* BATTERIES INCLUDED
BATTERIES INCLUDED
       ORM                   Admin
User Authentication          Forms
     Sessions               Caching
 Syndication (RSS)    Internationalization
    Templates               Testing
WEB SERVERS
     A lot of options
Apache is a popular choice
JYTHON SUPPORT
Give your IT guys a .war
OBJECT-RELATIONAL MAPPER
  Treat your DB rows like objects
    Autogenerate SQL queries
SUPPORTED DATABASES
             MySQL
          PostgreSQL
             Oracle
 3rd Party backend for MSSQL
            & more…
ADMIN
app for managing content
ADMIN
URL DISPATCHER
route requests to handlers using
       regular expressions
VIEWS
1. receive request
2. MAGIC
3. return response
IS
TEMPLATES
separate responsibility for
  logic & presentation
GET OUT OF MY WAY
    I'm big now.
MODULAR FRAMEWORK
        Admin?
         ORM?
      Templates?
       Sessions?
         Auth?
     ALL OPTIONAL
TEAR IT OUT
TEAR IT OUT
   Extend.
END RESULT
Happy developers
writing better code
       faster.
VS.
QUESTIONS
THANK YOU!
   @idangazit
idan@pixane.com


hosted by

Why Django