why i hate django - part 1/2

97
Why I Hate Django Cal Henderson

Upload: cal-henderson

Post on 10-May-2015

10.894 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Why I Hate Django - Part 1/2

Why I Hate DjangoCal Henderson

Page 2: Why I Hate Django - Part 1/2

DjangoCon 2008 2

O HAI

Page 3: Why I Hate Django - Part 1/2

DjangoCon 2008 3

My happy face

Page 4: Why I Hate Django - Part 1/2

DjangoCon 2008 4

Page 5: Why I Hate Django - Part 1/2

DjangoCon 2008 5

2.8 billion photos

Page 6: Why I Hate Django - Part 1/2

DjangoCon 2008 6

2.8 billion photos

1 per 2.3 people on earth

9.2 per US resident

Page 7: Why I Hate Django - Part 1/2

DjangoCon 2008 7

35k photos/sec

>2m photos/min

Page 8: Why I Hate Django - Part 1/2

DjangoCon 2008 8

Many thousand pages/sec

Page 9: Why I Hate Django - Part 1/2

DjangoCon 2008 9

Scale nerd

Page 10: Why I Hate Django - Part 1/2

DjangoCon 2008 10

Serious Language

Page 11: Why I Hate Django - Part 1/2

DjangoCon 2008 11

Yahoo

FacebookMediawiki

Wordpress

Page 12: Why I Hate Django - Part 1/2

DjangoCon 2008 12

Yahoo

FacebookMediawiki

Wordpress

DiggDelicious

Page 13: Why I Hate Django - Part 1/2

DjangoCon 2008 13

Flamework

Serious Toolset

Page 14: Why I Hate Django - Part 1/2

DjangoCon 2008 14

Flamework

Flint

Flinderbox

Flaux

Flag

Flink

Flotos

Flictionary

Flops

Fleng

Page 15: Why I Hate Django - Part 1/2

DjangoCon 2008 15

Why hate Django?

Page 16: Why I Hate Django - Part 1/2

DjangoCon 2008 16

What does he even know

about Django?

Page 17: Why I Hate Django - Part 1/2

DjangoCon 2008 17

Pownce

Page 18: Why I Hate Django - Part 1/2

DjangoCon 2008 18

A fucking blogging engine

Page 19: Why I Hate Django - Part 1/2

DjangoCon 2008 19

Why all the hate?

Page 20: Why I Hate Django - Part 1/2

DjangoCon 2008 20

Page 21: Why I Hate Django - Part 1/2

DjangoCon 2008 21

Page 22: Why I Hate Django - Part 1/2

DjangoCon 2008 22

Page 23: Why I Hate Django - Part 1/2

DjangoCon 2008 23

Page 24: Why I Hate Django - Part 1/2

DjangoCon 2008 24

An attack on several fronts

Page 25: Why I Hate Django - Part 1/2

DjangoCon 2008 25

An attack on several fronts

The team

Python

Frameworks

Page 26: Why I Hate Django - Part 1/2

DjangoCon 2008 26

Django itself

Performance

Scalability

Maintainability

Page 27: Why I Hate Django - Part 1/2

DjangoCon 2008 27

The Team

Page 28: Why I Hate Django - Part 1/2

DjangoCon 2008 28

Frameworks

Page 29: Why I Hate Django - Part 1/2

DjangoCon 2008 29

Struts

Page 30: Why I Hate Django - Part 1/2

DjangoCon 2008 30

Craig McClanahan

Page 31: Why I Hate Django - Part 1/2

DjangoCon 2008 31

Page 32: Why I Hate Django - Part 1/2

DjangoCon 2008 32

Exhibit A : Beard

Page 33: Why I Hate Django - Part 1/2

DjangoCon 2008 33

But Struts is for suits!

Page 34: Why I Hate Django - Part 1/2

DjangoCon 2008 34

The Hot Shit

Page 35: Why I Hate Django - Part 1/2

DjangoCon 2008 35

Page 36: Why I Hate Django - Part 1/2

DjangoCon 2008 36

Rails = Badass

Page 37: Why I Hate Django - Part 1/2

DjangoCon 2008 37

Instead?

A boy band?

Page 38: Why I Hate Django - Part 1/2

DjangoCon 2008 38

DjangoCore

The Album

Page 39: Why I Hate Django - Part 1/2

DjangoCon 2008 39

Page 40: Why I Hate Django - Part 1/2

DjangoCon 2008 40

Simon “Stinky” Willison

Also, a wizard

Page 41: Why I Hate Django - Part 1/2

DjangoCon 2008 41

Python

Page 42: Why I Hate Django - Part 1/2

DjangoCon 2008 42

Trendy

Google!

Page 43: Why I Hate Django - Part 1/2

DjangoCon 2008 43

But not that trendy

Page 44: Why I Hate Django - Part 1/2

DjangoCon 2008 44

But not that trendy

It’s no ruby

Page 45: Why I Hate Django - Part 1/2

DjangoCon 2008 45

But not that trendy

It’s no ruby

Or Haskell

Page 46: Why I Hate Django - Part 1/2

DjangoCon 2008 46

But not that trendy

It’s no ruby

Or Erlang

Or Haskell

Page 47: Why I Hate Django - Part 1/2

DjangoCon 2008 47

But not that trendy

It’s no ruby

Or ErlangOr Scala

Or Haskell

Page 48: Why I Hate Django - Part 1/2

DjangoCon 2008 48

Significant Whitespace

Page 49: Why I Hate Django - Part 1/2

DjangoCon 2008 49

Page 50: Why I Hate Django - Part 1/2

DjangoCon 2008 50

Salmon

Page 51: Why I Hate Django - Part 1/2

DjangoCon 2008 51

Universe of marshy force. Field sense

shallows the hatchery saying Hello,. World!.

Hydro. Power spring sometimes; snowmelt

powers snowmelt always.

Page 52: Why I Hate Django - Part 1/2

DjangoCon 2008 52

Page 53: Why I Hate Django - Part 1/2

DjangoCon 2008 53

No quantum

superpositions

Page 54: Why I Hate Django - Part 1/2

DjangoCon 2008 54

Page 55: Why I Hate Django - Part 1/2

DjangoCon 2008 55

“-”.join(array)

Page 56: Why I Hate Django - Part 1/2

DjangoCon 2008 56

Restarting the server?

WTF!?

Page 57: Why I Hate Django - Part 1/2

DjangoCon 2008 57

WSGIReloadMechanism

Page 58: Why I Hate Django - Part 1/2

DjangoCon 2008 58

“I buy my eggs at the cheese shop”- Aaron Straup Cope

Page 59: Why I Hate Django - Part 1/2

DjangoCon 2008 59

“I buy my eggs at the cheese shop”- Aaron Straup Cope

[MOON L

ANGUAGE]

Page 60: Why I Hate Django - Part 1/2

DjangoCon 2008 60

Page 61: Why I Hate Django - Part 1/2

DjangoCon 2008 61

__import__()

from future import awesome

Page 62: Why I Hate Django - Part 1/2

DjangoCon 2008 62

Basically, for hippies

OO languages

Scared of real

Page 63: Why I Hate Django - Part 1/2

DjangoCon 2008 63

Frameworks

Page 64: Why I Hate Django - Part 1/2

DjangoCon 2008 64

Flamework is a framework

But what does that mean?

Page 65: Why I Hate Django - Part 1/2

DjangoCon 2008 65

Make common tasks:

faster

easier

error-free

Page 66: Why I Hate Django - Part 1/2

DjangoCon 2008 66

Show a list of photos

Write an API method

Kill all humans

Page 67: Why I Hate Django - Part 1/2

DjangoCon 2008 67

Front-tier frameworks

Act as glue

Page 68: Why I Hate Django - Part 1/2

DjangoCon 2008 68

Data store

Business

Logic

Interaction

LogicTemplates

Request

Dispatcher

Users

Other

Services

Data Model

Framework

Page 69: Why I Hate Django - Part 1/2

DjangoCon 2008 69

Great for getting started

Slows you down later?

What is it doing in there?

Page 70: Why I Hate Django - Part 1/2

DjangoCon 2008 70

Page 71: Why I Hate Django - Part 1/2

DjangoCon 2008 71

Page 72: Why I Hate Django - Part 1/2

DjangoCon 2008 72

Page 73: Why I Hate Django - Part 1/2

DjangoCon 2008 73

Fast

Flexible

Easy

Scalable

Page 74: Why I Hate Django - Part 1/2

DjangoCon 2008 74

Large scale

is often not a good goal

Page 75: Why I Hate Django - Part 1/2

DjangoCon 2008 75

Skyscrapers are special

Page 76: Why I Hate Django - Part 1/2

DjangoCon 2008 76

Regular houses

Don’t need 10 story foundations

Page 77: Why I Hate Django - Part 1/2

DjangoCon 2008 77

Just build!

Page 78: Why I Hate Django - Part 1/2

DjangoCon 2008 78

Page 79: Why I Hate Django - Part 1/2

DjangoCon 2008 79

Page 80: Why I Hate Django - Part 1/2

DjangoCon 2008 80

Page 81: Why I Hate Django - Part 1/2

DjangoCon 2008 81

Everything here is possible!

We care about easy

Page 82: Why I Hate Django - Part 1/2

DjangoCon 2008 82

Large Scale

Page 83: Why I Hate Django - Part 1/2

DjangoCon 2008 83

No multiple DB clusters

Page 84: Why I Hate Django - Part 1/2

DjangoCon 2008 84

Manual partitioning

Page 85: Why I Hate Django - Part 1/2

DjangoCon 2008 85

No multiple hosts per DB

Page 86: Why I Hate Django - Part 1/2

DjangoCon 2008 86

Where do we read from?

Page 87: Why I Hate Django - Part 1/2

DjangoCon 2008 87

How about now?

Page 88: Why I Hate Django - Part 1/2

DjangoCon 2008 88

How about now ?

Page 89: Why I Hate Django - Part 1/2

DjangoCon 2008 89

Read/write consistency

Page 90: Why I Hate Django - Part 1/2

DjangoCon 2008 90

Read/write consistency

LAG!!1

Page 91: Why I Hate Django - Part 1/2

DjangoCon 2008 91

Good for non-writing users

(logged out)

Page 92: Why I Hate Django - Part 1/2

DjangoCon 2008 92

Non time-sensitive data

Feeds

Read-only APIs

Page 93: Why I Hate Django - Part 1/2

DjangoCon 2008 93

Page 94: Why I Hate Django - Part 1/2

DjangoCon 2008 94

Cool kids use

master/master pairs

Page 95: Why I Hate Django - Part 1/2

DjangoCon 2008 95

Consistent read/write

1. Write to side A

2. Read from side B

3. Replication occurs

4. FAIL

Page 96: Why I Hate Django - Part 1/2

DjangoCon 2008 96

Consistent read/write

1. Write to side A

2. Read from side A

3. ???

4. PROFIT!!

Page 97: Why I Hate Django - Part 1/2

DjangoCon 2008 97

Then we can start to get fancy!