Slide 1

Slide 1 text

Billion-Dollar Mistakes Tony Hoare and Android Burritos

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Android has Good Parts

Slide 5

Slide 5 text

Android has Good Parts

Slide 6

Slide 6 text

Focus on $PEOPLE not on $TECH

Slide 7

Slide 7 text

Focus on $PRODUCT not on $TECH

Slide 8

Slide 8 text

TODAY…

Slide 9

Slide 9 text

TODAY… 1. Why it’s good to own your mistakes

Slide 10

Slide 10 text

TODAY… 1. Why it’s good to own your mistakes 2. Why I care deeply about documentation

Slide 11

Slide 11 text

TODAY… 1. Why it’s good to own your mistakes 2. Why I care deeply about documentation 3. Why I really don’t like Android Burritos

Slide 12

Slide 12 text

“I call it my billion-dollar mistake.” Tony Hoare (2009)

Slide 13

Slide 13 text

It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. “I call it my billion-dollar mistake.” Tony Hoare (2009)

Slide 14

Slide 14 text

Who is Tony Hoare?

Slide 15

Slide 15 text

Who is Tony Hoare? Quicksort Quickselect Communication Sequential Processes Sctructured Programming

Slide 16

Slide 16 text

Who is Tony Hoare? Turing Award Goode Memorial Award Faraday Medal Computer Pioneer Award Kyoto Prize IEE Neumann Medal Quicksort Quickselect Communication Sequential Processes Sctructured Programming

Slide 17

Slide 17 text

Who is Tony Hoare? Turing Award Goode Memorial Award Faraday Medal Computer Pioneer Award Kyoto Prize IEE Neumann Medal Quicksort Quickselect Communication Sequential Processes Sctructured Programming Billion Dollar Mistake

Slide 18

Slide 18 text

Maths Google, Amazon, Apple, Facebook, Microsoft are worth $500-$1000 billion

Slide 19

Slide 19 text

There is always a good reason to do nothing

Slide 20

Slide 20 text

There is always a good reason to do nothing "We were after the C++ programmers.” “We managed to drag a lot of them about halfway to Lisp.” Guy Steele, co-author of the Java spec

Slide 21

Slide 21 text

The Tony Hoare effect

Slide 22

Slide 22 text

The Tony Hoare effect Before: C, C++, Java, JavaScript, …

Slide 23

Slide 23 text

The Tony Hoare effect Before: C, C++, Java, JavaScript, … After: Kotlin, Swift, TypeScript, @Java, …

Slide 24

Slide 24 text

Why I care deeply about good documentation?

Slide 25

Slide 25 text

“Lernen durch Schmerzen”

Slide 26

Slide 26 text

“Lernen durch Schmerzen” Junior developer

Slide 27

Slide 27 text

“Lernen durch Schmerzen” Junior developer Android is cool

Slide 28

Slide 28 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM

Slide 29

Slide 29 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened

Slide 30

Slide 30 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened Smelling code

Slide 31

Slide 31 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened Smelling code Slow ⏳

Slide 32

Slide 32 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened Smelling code Slow ⏳ Crashes

Slide 33

Slide 33 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened Smelling code Slow ⏳ Crashes I can’t write tests

Slide 34

Slide 34 text

“Lernen durch Schmerzen” Junior developer Android is cool RTFM Not enligthened Smelling code Slow ⏳ Crashes I can’t write tests It must be me

Slide 35

Slide 35 text

A turning point The price of ENUMs #PERFMATTERS https://www.youtube.com/watch?v=Hzs6OBcvNQE We implemented Enums badly Let’s pass the buck to app developers

Slide 36

Slide 36 text

AHA

Slide 37

Slide 37 text

Everyone is writing crappy code

Slide 38

Slide 38 text

Do as I say, Not as I do

Slide 39

Slide 39 text

Read The Friendly Manual

Slide 40

Slide 40 text

Android Burritos android/camera-sample/BurritoFragment google/google-authenticator/BurritoActivity

Slide 41

Slide 41 text

Android Burritos do everything

Slide 42

Slide 42 text

Android Burritos are hard

Slide 43

Slide 43 text

Android Burritos are buggy

Slide 44

Slide 44 text

Android Burritos are legacy code

Slide 45

Slide 45 text

Android Burritos are still a thing today

Slide 46

Slide 46 text

Android Burritos mislead new programmers

Slide 47

Slide 47 text

Android Burritos Simple things that compose really well

Slide 48

Slide 48 text

Unix Philosophy Simple things that compose really well

Slide 49

Slide 49 text

Music Simple things that compose really well

Slide 50

Slide 50 text

Simple things that compose really well

Slide 51

Slide 51 text

Simple things that compose really well The magic of Music: By combining those simple primitivies, You can build all the music of the world ..like this symphony that 10.000 Japanese sing in German https://www.youtube.com/watch?v=X6s6YKlTpfw

Slide 52

Slide 52 text

RECAP

Slide 53

Slide 53 text

RECAP 1. Real Mensch own their mistakes

Slide 54

Slide 54 text

RECAP 1. Real Mensch own their mistakes 2. Mediocre documentation makes beginners feel stupid

Slide 55

Slide 55 text

RECAP 1. Real Mensch own their mistakes 2. Mediocre documentation makes beginners feel stupid 3. Simple things that compose well

Slide 56

Slide 56 text

Getting in touch dev.to/jmfayard Slides Article Links Follow me and contact me