3. Also in 2004
● Didn't listen to smart people :(
– Chief architect of a large innovative
company told me to dump Java & switch
to Python
● Citing Paul Graham saying that Java is a
dead leaf in the evolutionary tree of
programming languages
4. 2006 - &
● Smiling ever since
● “People who've made the switch to
dynamic languages such as Python seem
much, much happier.”
– Bruce Eckel, Author of “Thinking in Java” &
“Thinking in Python”
5. Python, WTF?
● Isn't this some scripting language for
system administrators & the like?
What does it have to do with us –
serious Java & .Net programmers???
6. Python, WTF?
● Python is a modern programming
language.
– Pure OOP (Object Oriented Programming)
– Pure AOP (Aspect Oriented Programming)
– Pure FP (Functional Programming)
7. Python, WTF?
● Some companies & organization attract the
best programmers in the world
● E.g.
8. Python, WTF?
● Turns out that the programming language
of choice in most of these places is Python
● E.g.
9. Quotes
● “Python has been an important part of
Google since the beginning, and remains
so as the system grows and evolves”
– Peter Norvig, Director of Research, Google
10. Quotes
● “Python is fast enough for our site and
allows us to produce maintainable features
in record times, with a minimum of
developers”
– Cuong Do, Engineering Manager, YouTube
(Watch the video: http://bit.ly/youtube_scalability)
11. The reason, IMHO
● Python offers the optimal combination of
Power & Simplicity
– perfect for coding Business Logic
– perfect for any software at any size &
complexity
15. Python libraries
● Real wealth of libraries
● The Python Package Index (PyPi) lists
7.7K
● Cover almost any functionality & need
● Very easy to install
● Very intuitive
– Work just as you expect them to work
16. Python summary
● Python has many advantages, but the
bottom line is:
– Happy management
– Happy staff
– Happy customers
● Don't take my word – Google what people
say about their experience with Python &
tell me if you find any counter-example
17. Python summary
● What's in it for us?
– Need implement a new complex system or
service?
– Prototype it in Python
– Then realize that it's ready for usage
19. Django slogan
● The Web framework for Perfectionists
with deadlines
20. Perfectionists?
● Emphasizing clean MVC design
● Django apps are reusable by design
● Based on Best-Practices
● Extremely easy to unit-test
21. Deadlines?
● Growned in the Online Newspapers
industry
– Designed to make development fast
● E.g., automatic admin interface
● Automates repetitive tasks
● Leading technology in new US Startups,
according to recent polls
22. Quotes
● “After an extensive trade study, we selected
Django as the first and primary application
environment for the Nebula Cloud. ”
– NASA,
http://nebula.nasa.gov/services/framework
26. Lots of reusable apps
● Hundreds of pluggable apps exist, for
almost any purpose
● Very easy to plug into your project
– Adds complete functionality, integrated with
your application
27. How do you develop/run?
● I use the Eclipse-based Aptana IDE
● I run Django on LAMP (Linux, Apache,
MySQL/Postgres, Python) or AppEngine
– You can also deploy Django as .war on any
Java Application Server
28. Django demo
● Let's write a small Django app for project
management
– Manage projects & tasks
– Manage users & roles
– Rich UI (search, filters, recent actions list)
– Project health indicators
– Tasks focus chart
33. Java/.Net vs. Django
● Think how much code it would take in Java
or .Net
– Common
– BI
– DAL
– Basic
– Logic
– API
34. Java/.Net vs. Django
● Damn, Django does the same thing without
all the complexity & verbosity
● How much time & cognitive effort it takes to
learn, understand & modify it?
35. Django summary
● What's in it for us?
– Nothing
● you can afford developing systems using
10 developers for several weeks
● instead of 1-2 developers for several
days :)
36. Django summary
● Seriously:
– Need implement a new system?
– Prototype it in Django in a few hours
– Then realize that it's ready for production