Slide 1

Slide 1 text

Brûlons les musées @fat Apr 2012

Slide 2

Slide 2 text

I work at twitter

Slide 3

Slide 3 text

I write libraries

Slide 4

Slide 4 text

Bootstrap Ender Hogan

Slide 5

Slide 5 text

I sometimes read books

Slide 6

Slide 6 text

Futurism and Dada

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Eliminating the past

Slide 9

Slide 9 text

Early 20th Century telephones automobiles airplains

Slide 10

Slide 10 text

We affirm that the world’s magnificence has been enriched by a new beauty: the beauty of speed. Filippo Marinetti

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Italian Anarchists with bombs

Slide 13

Slide 13 text

Destroy everything that is past, and amidst the wild ecstasy of destruction, let man be reborn as a child, a hero, and a free denizen of the future. Dezso Szabo

Slide 14

Slide 14 text

The Great War or The End of Futurism

Slide 15

Slide 15 text

Then there was dada

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

WWI and Zurich, Switzerland

Slide 18

Slide 18 text

Not relieved. Furious.

Slide 19

Slide 19 text

Cabaret Voltaire and Hugo Ball

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

We should burn all libraries and allow to remain only that which everyone knows by heart. Hugo Ball

Slide 22

Slide 22 text

But I write libraries...

Slide 23

Slide 23 text

Why would he say that?

Slide 24

Slide 24 text

The end of prehistory and the start of history.

Slide 25

Slide 25 text

a futurist sentiment?

Slide 26

Slide 26 text

The Programming Library

Slide 27

Slide 27 text

Wexelblat, Richard (1981). History of Programming Languages

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

I’d whistle at Dick and say, “Can I have your sine subroutine?” and I’d copy it out of his notebook. Grace Murray Hopper

Slide 30

Slide 30 text

As early as 1944 we started putting together things which would make it easier to write more accurate programs and get them written faster. Grace Murray Hopper

Slide 31

Slide 31 text

Wheeler, Wilkes, and Gill designed a set of subroutines for a computer before it was implemented, and there was for the first time an available set of mathematical subroutines which were more or less standardized in the way you put data into them and the way you got data out of them, and made it possible to begin to write programs a little more rapidly. Grace Murray Hopper

Slide 32

Slide 32 text

As I went along in the process of standardizing the subroutines, I recognized something else was happening in the prgramming group. We were using subroutines. We were copying routines from one program into another. Two things wrong with that: programmers are lousy adders. Programmers are lousy copyists (B’s turned into 13’s, 4’s into A’s). It therefore seemed sensible instead of having programmers copy the subroutines, to have the computer copy the subroutines. Out of that came the A-0 compiler. Grace Murray Hopper

Slide 33

Slide 33 text

hugo ball + 1/2 century = programming libraries

Slide 34

Slide 34 text

We’ve been using these “libraries” for about 50 years

Slide 35

Slide 35 text

What if we really started over?

Slide 36

Slide 36 text

Jacob Thornton @fat 22 Feb New Interview question: You have 45 minutes to write jQuery from scratch. Get as far as you can. Start from wherever you’d like.

Slide 37

Slide 37 text

Rey Bango @reybango 22 feb @fat You’re sssssooo evil :)

Slide 38

Slide 38 text

Instinctually you’d say we’re screwed

Slide 39

Slide 39 text

The whiteboards would also suggest we’re screwed

Slide 40

Slide 40 text

But what if we just tried it anyways

Slide 41

Slide 41 text

First Attempt Qwery Bean Bonzo

Slide 42

Slide 42 text

smaller, more focused apis

Slide 43

Slide 43 text

Horse ebooks @horse_ebooks 15 mar (Dalton) Dangerous at all Times and Usually Wholly Unnecessary.

Slide 44

Slide 44 text

Usually Wholly Unnecessary

Slide 45

Slide 45 text

Turns out it’s really hard to just start over

Slide 46

Slide 46 text

particularlly when starting only from what you know by heart

Slide 47

Slide 47 text

Is there a path forward?

Slide 48

Slide 48 text

yeah bro tests!

Slide 49

Slide 49 text

Second Attempt hogan.js

Slide 50

Slide 50 text

Mustache doing it right \o/

Slide 51

Slide 51 text

improved perf + smaller lib size all around

Slide 52

Slide 52 text

mustache.js changes their ways

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

Why would Hugo say that?

Slide 55

Slide 55 text

Because things get better for everyone

Slide 56

Slide 56 text

Why aren’t we sharing all our tests? Why is this not a thing?

Slide 57

Slide 57 text

selector engines? dom utilities? less? events? xhr? futures? etc.

Slide 58

Slide 58 text

What if going forward we defined a library not by it’s implementation, but by it’s test suite?

Slide 59

Slide 59 text

We should burn all “libraries” and allow to remain only their test suites. @fat

Slide 60

Slide 60 text

thank you <3