why i hate django - part 1/2
TRANSCRIPT
Why I Hate DjangoCal Henderson
DjangoCon 2008 2
O HAI
DjangoCon 2008 3
My happy face
DjangoCon 2008 4
DjangoCon 2008 5
2.8 billion photos
DjangoCon 2008 6
2.8 billion photos
1 per 2.3 people on earth
9.2 per US resident
DjangoCon 2008 7
35k photos/sec
>2m photos/min
DjangoCon 2008 8
Many thousand pages/sec
DjangoCon 2008 9
Scale nerd
DjangoCon 2008 10
Serious Language
DjangoCon 2008 11
Yahoo
FacebookMediawiki
Wordpress
DjangoCon 2008 12
Yahoo
FacebookMediawiki
Wordpress
DiggDelicious
DjangoCon 2008 13
Flamework
Serious Toolset
DjangoCon 2008 14
Flamework
Flint
Flinderbox
Flaux
Flag
Flink
Flotos
Flictionary
Flops
Fleng
DjangoCon 2008 15
Why hate Django?
DjangoCon 2008 16
What does he even know
about Django?
DjangoCon 2008 17
Pownce
DjangoCon 2008 18
A fucking blogging engine
DjangoCon 2008 19
Why all the hate?
DjangoCon 2008 20
DjangoCon 2008 21
DjangoCon 2008 22
DjangoCon 2008 23
DjangoCon 2008 24
An attack on several fronts
DjangoCon 2008 25
An attack on several fronts
The team
Python
Frameworks
DjangoCon 2008 26
Django itself
Performance
Scalability
Maintainability
DjangoCon 2008 27
The Team
DjangoCon 2008 28
Frameworks
DjangoCon 2008 29
Struts
DjangoCon 2008 30
Craig McClanahan
DjangoCon 2008 31
DjangoCon 2008 32
Exhibit A : Beard
DjangoCon 2008 33
But Struts is for suits!
DjangoCon 2008 34
The Hot Shit
DjangoCon 2008 35
DjangoCon 2008 36
Rails = Badass
DjangoCon 2008 37
Instead?
A boy band?
DjangoCon 2008 38
DjangoCore
The Album
DjangoCon 2008 39
DjangoCon 2008 40
Simon “Stinky” Willison
Also, a wizard
DjangoCon 2008 41
Python
DjangoCon 2008 42
Trendy
Google!
DjangoCon 2008 43
But not that trendy
DjangoCon 2008 44
But not that trendy
It’s no ruby
DjangoCon 2008 45
But not that trendy
It’s no ruby
Or Haskell
DjangoCon 2008 46
But not that trendy
It’s no ruby
Or Erlang
Or Haskell
DjangoCon 2008 47
But not that trendy
It’s no ruby
Or ErlangOr Scala
Or Haskell
DjangoCon 2008 48
Significant Whitespace
DjangoCon 2008 49
DjangoCon 2008 50
Salmon
DjangoCon 2008 51
Universe of marshy force. Field sense
shallows the hatchery saying Hello,. World!.
Hydro. Power spring sometimes; snowmelt
powers snowmelt always.
DjangoCon 2008 52
DjangoCon 2008 53
No quantum
superpositions
DjangoCon 2008 54
DjangoCon 2008 55
“-”.join(array)
DjangoCon 2008 56
Restarting the server?
WTF!?
DjangoCon 2008 57
WSGIReloadMechanism
DjangoCon 2008 58
“I buy my eggs at the cheese shop”- Aaron Straup Cope
DjangoCon 2008 59
“I buy my eggs at the cheese shop”- Aaron Straup Cope
[MOON L
ANGUAGE]
DjangoCon 2008 60
DjangoCon 2008 61
__import__()
from future import awesome
DjangoCon 2008 62
Basically, for hippies
OO languages
Scared of real
DjangoCon 2008 63
Frameworks
DjangoCon 2008 64
Flamework is a framework
But what does that mean?
DjangoCon 2008 65
Make common tasks:
faster
easier
error-free
DjangoCon 2008 66
Show a list of photos
Write an API method
Kill all humans
DjangoCon 2008 67
Front-tier frameworks
Act as glue
DjangoCon 2008 68
Data store
Business
Logic
Interaction
LogicTemplates
Request
Dispatcher
Users
Other
Services
Data Model
Framework
DjangoCon 2008 69
Great for getting started
Slows you down later?
What is it doing in there?
DjangoCon 2008 70
DjangoCon 2008 71
DjangoCon 2008 72
DjangoCon 2008 73
Fast
Flexible
Easy
Scalable
DjangoCon 2008 74
Large scale
is often not a good goal
DjangoCon 2008 75
Skyscrapers are special
DjangoCon 2008 76
Regular houses
Don’t need 10 story foundations
DjangoCon 2008 77
Just build!
DjangoCon 2008 78
DjangoCon 2008 79
DjangoCon 2008 80
DjangoCon 2008 81
Everything here is possible!
We care about easy
DjangoCon 2008 82
Large Scale
DjangoCon 2008 83
No multiple DB clusters
DjangoCon 2008 84
Manual partitioning
DjangoCon 2008 85
No multiple hosts per DB
DjangoCon 2008 86
Where do we read from?
DjangoCon 2008 87
How about now?
DjangoCon 2008 88
How about now ?
DjangoCon 2008 89
Read/write consistency
DjangoCon 2008 90
Read/write consistency
LAG!!1
DjangoCon 2008 91
Good for non-writing users
(logged out)
DjangoCon 2008 92
Non time-sensitive data
Feeds
Read-only APIs
DjangoCon 2008 93
DjangoCon 2008 94
Cool kids use
master/master pairs
DjangoCon 2008 95
Consistent read/write
1. Write to side A
2. Read from side B
3. Replication occurs
4. FAIL
DjangoCon 2008 96
Consistent read/write
1. Write to side A
2. Read from side A
3. ???
4. PROFIT!!
DjangoCon 2008 97
Then we can start to get fancy!