SlideShare a Scribd company logo
1 of 190
Download to read offline
PREMATURE
OPTIMIZATION
The Root of ALL Evil
@akitaonrails
PREMATURE
OPTIMIZATION
The Root of ALL Evil
@akitaonrails
2.0
@akitaonrails
Uber para segurança particular
Uber para advogados
Uber para maconha
Uber para massagem
Uber para álcool
Uber para lavanderia
Uber para passeio de cachorro
Airbnb para barcos
Airbnb para cachorros
Airbnb para equipamentos
Airbnb para acampamentos
Airbnb para banheiros (!!)
Airbnb para impressão 3D
Airbnb para cozinhas
Tinder para sapatos
Tinder para cachorros
Tinder para notícias
Tinder para networking
Tinder para empregos
Tinder para saias
http://bit.ly/1iUMuuF
elastic.co
“The Social Network" (2010)
“The Social Network" (2010)
“The Social Network" (2010)
“The Social Network" (2010)
“The Social Network" (2010)
“The Social Network" (2010)
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points Elo Rating
1 Samus 221 120 101 19 896
2 Kong 217 117 100 17 802
3 Luigi 186 95 91 4 841
4 Zelda 160 81 79 2 847
5 Pikachu 209 105 104 1 851
6 Yoshi 223 112 111 1 803
7 Mario 203 101 102 -1 820
8 Wario 207 102 105 -3 760
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Samus (2nd) wins from Wario (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Samus 221 120 101 19 896
2 Kong 217 117 100 17 802
3 Luigi 186 95 91 4 841
4 Zelda 160 81 79 2 847
5 Pikachu 209 105 104 1 851
6 Yoshi 223 112 111 1 803
7 Mario 203 101 102 -1 820
8 Wario 207 102 105 -3 760
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Samus (2nd) wins from Wario (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Samus 221 120 101 19 896
2 Kong 217 117 100 17 802
3 Luigi 186 95 91 4 841
4 Zelda 160 81 79 2 847
5 Pikachu 209 105 104 1 851
6 Yoshi 223 112 111 1 803
7 Mario 203 101 102 -1 820
8 Wario 207 102 105 -3 760
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Samus (2nd) wins from Wario (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Samus 221 120 101 19 896
2 Kong 227 117 110 7 732
3 Luigi 186 95 91 4 841
4 Zelda 160 81 79 2 847
5 Pikachu 209 105 104 1 851
6 Yoshi 223 112 111 1 803
7 Mario 203 101 102 -1 820
8 Wario 207 102 105 -3 760
9 Bowser 196 92 104 -12 845
10 Fox 208 95 113 -18 754
Kong (2nd) loses to Bowser (10th) 10 times
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points E
1 Pikachu 209 105 104 1
2 Zelda 160 81 79 2
3 Samus 211 110 101 9
4 Luigi 186 95 91 4
5 Wario 197 102 95 7
6 Mario 203 101 102 -1
7 Yoshi 223 112 111 1
8 Kong 217 117 100 17
9 Bowser 186 82 104 -22
10 Fox 208 95 113 -18
Name Games Wins Loses Points Elo Rating
1 Kong 217 117 100 17 802
2 Samus 211 110 101 9 842
3 Wario 197 102 95 7 824
4 Luigi 186 95 91 4 841
5 Zelda 160 81 79 2 847
6 Pikachu 209 105 104 1 851
7 Yoshi 223 112 111 1 803
8 Mario 203 101 102 -1 820
9 Fox 208 95 113 -18 754
10 Bowser 186 82 104 -22 785
Name Games Wins Loses Points Elo Rating
1 Pikachu 209 105 104 1 851
2 Zelda 160 81 79 2 847
3 Samus 211 110 101 9 842
4 Luigi 186 95 91 4 841
5 Wario 197 102 95 7 824
6 Mario 203 101 102 -1 820
7 Yoshi 223 112 111 1 803
8 Kong 217 117 100 17 802
9 Bowser 186 82 104 -22 785
10 Fox 208 95 113 -18 754
Name Games Wins Loses Points Elo Rating
1 Pikachu 209 105 104 1 851
2 Zelda 160 81 79 2 847
3 Samus 211 110 101 9 842
4 Luigi 186 95 91 4 841
5 Wario 197 102 95 7 824
6 Mario 203 101 102 -1 820
7 Yoshi 223 112 111 1 803
8 Kong 217 117 100 17 802
9 Bowser 186 82 104 -22 785
10 Fox 208 95 113 -18 754
Name Games Wins Loses Points Elo Rating
1 Pikachu 209 105 104 1 851
2 Zelda 160 81 79 2 847
3 Samus 211 110 101 9 842
4 Luigi 186 95 91 4 841
5 Wario 197 102 95 7 824
6 Mario 203 101 102 -1 820
7 Yoshi 223 112 111 1 803
8 Kong 217 117 100 17 802
9 Bowser 186 82 104 -22 785
10 Fox 208 95 113 -18 754
Name Games Wins Loses Points Elo Rating
1 Pikachu 209 105 104 1 851
2 Zelda 160 81 79 2 847
3 Samus 211 110 101 9 842
4 Luigi 186 95 91 4 841
5 Wario 197 102 95 7 824
6 Mario 203 101 102 -1 820
7 Yoshi 223 112 111 1 803
8 Kong 217 117 100 17 802
9 Bowser 186 82 104 -22 785
10 Fox 208 95 113 -18 754
Name Games Wins Loses Points Elo Rating
1 Zelda 170 91 79 12 904
2 Pikachu 209 105 104 1 851
3 Luigi 186 95 91 4 841
4 Wario 197 102 95 7 824
5 Mario 203 101 102 -1 820
6 Yoshi 223 112 111 1 803
7 Kong 217 117 100 17 802
8 Bowser 186 82 104 -22 785
9 Samus 221 110 111 -1 775
10 Fox 208 95 113 -18 754
Zelda (2nd) wins from Samus (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Zelda 170 91 79 12 904
2 Pikachu 209 105 104 1 851
3 Luigi 186 95 91 4 841
4 Wario 197 102 95 7 824
5 Mario 203 101 102 -1 820
6 Yoshi 223 112 111 1 803
7 Kong 217 117 100 17 802
8 Bowser 186 82 104 -22 785
9 Samus 221 110 111 -1 775
10 Fox 208 95 113 -18 754
Zelda (2nd) wins from Samus (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Zelda 170 91 79 12 904
2 Pikachu 209 105 104 1 851
3 Luigi 186 95 91 4 841
4 Wario 197 102 95 7 824
5 Mario 203 101 102 -1 820
6 Yoshi 223 112 111 1 803
7 Kong 217 117 100 17 802
8 Bowser 186 82 104 -22 785
9 Samus 221 110 111 -1 775
10 Fox 208 95 113 -18 754
Zelda (2nd) wins from Samus (3rd) 10 times
Name Games Wins Loses Points Elo Rating
1 Zelda 170 91 79 12 904
2 Luigi 186 95 91 4 841
3 Fox 218 105 113 -8 829
4 Wario 197 102 95 7 824
5 Mario 203 101 102 -1 820
6 Yoshi 223 112 111 1 803
7 Kong 217 117 100 17 802
8 Bowser 186 82 104 -22 785
9 Samus 221 110 111 -1 775
10 Pikachu 219 105 114 -9 766
Pikachu (2nd) loses to Fox (10th) 10 times
ELO Rating System
Microsoft TrueSkill Rating System
Google PageRank
Facebook EdgeRank
.NET
C
CoffeeScriptElixir
F#
Groovy
Java
JavaScript
Objective-C
PHP
Perl PythonRuby
Swift
Visual Basic .NET
.NET
C
CoffeeScript
Elixir
F#
Groovy
Java JavaScript
Objective-C
PHPPerl
Python
Ruby
Swift
Visual Basic .NET
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Speedcode (1953)
John Backus
- interpreter took 310 memory words, about
30% of the memory available on a 701
- twenty times that of machine code
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Fortran (1957)
John Backus
- first optimizing compiler
- complex number types/
electric engineering
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
CPL (1963)
Christopher Strachey
- Combined/Cambridge/

Combined Programming Language
- low and high level
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
BCPL (1966)
Martin Richards
- Basic CPL
- Bootstrap CPL
- popular choice
for bootstrapping a system
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
occam (1983)
INMOS
- concurrent programming language
- Bootstrap CPL
- communication between processes
work through named channels
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Algol (1958)
ETH Zürich committee
- Algol 58, Algol 60, Algol 68, Algol W
- Context-free Grammars (Backus-Naur Form/BNF)
- "ALGOL 68 was the first (and possibly one of the last)
major language for which a full formal definition was
made before it was implemented”
- “ALGOL 68 has been criticized, most prominently by
some members of its design committee such
as Hoare and Dijkstra, for abandoning the simplicity
of ALGOL 60”
- "Steve Bourne, who was on the Algol 68 revision
committee, took some of its ideas to his Bourne
shell (and thereby, to descendant shells such as Bash)
and to C (and thereby to descendants such as C++)."
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Modula (1960)
Niklaus Wirth
- "One of the first languages
designed from the start for
modular programming"
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
MUMPS (1966)
Neil Pappalardo
- "Massachusetts General Hospital Utility Multi-
Programming System”
- hierarchical ACID built-in database
- InterSystems Caché (SQL driver)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ADA (1966)
MIL-STD
- strong typing, generics
- modularity mechanisms (packages)
- run-time checking
- access to unallocated memory, buffer
overflow errors, range violations, off-by-one errors,
array access errors, and other detectable bugs
- parallel processing (tasks, synchronous
message passing, protected objects, and
- nondeterministic select statements)
- exception handling
- widely used in critical systems, where any anomaly might
lead to very serious consequences, e.g., accidental
death, injury or severe financial loss. Examples of
systems where Ada is used include avionics,ATC,
railways, banking, military and space technology
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Hope (1970s)
Edinburgh University
- NPL and Hope: first languages
with call-by-pattern evaluation
- influenced Standard ML,
Haskell
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
SNOBOL (1962)
AT&T Bell Labs
- patterns as a first-class data type
- operators for pattern
concatenation and alternation
- early regular expressions/pattern
matching
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
FLOW-MATIC (1955)
Grace Hopper
- 1952 - A0 compiler
- 1959 - COBOL
- English-like high level
language
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Simula (1967)
Ole-Johan Dahl, Kristen Nygaard
- object-oriented programming
- inheritance and subclasses
- virtual methods, coroutines
- Garbage Collector
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
CLU (1974)
Barbara Liskov
- early object-oriented programming
- classes with constructors and methods,
without inheritance
- iterators, abstract data types, type-safe
parameterized/variant types
- multiple return values (parallel
assignment)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ISWIM (1965)
Peter J. Landin
- "If you See What I Mean"
- functional programming

(SASL, Miranda, ML, Haskell)
- lazy evaluation

(SASL, KRC, Hope, Miranda, Haskell,
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Miranda (1985)
David Turner
- lazy, purely functional programming
- list comprehensions (Haskell)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Clean (1987)
Radboud University Nijmegen
- mutable state and I/O is done through
a uniqueness typing system (Haskell
Monads)
- performance comparable to Haskell
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Self (1987)
David Ungar, Randall Smith
- dialect of Smalltalk (OOP)
- prototype-based (Javascript)
- Just in time Compiling (JVM)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Prolog (1972)
Alain Colmerauer
- logic programming (influenced Erlang)
- natural language processing
- relations, represented as facts and rules
- running a query over these relations
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Erlang (1986)
Joe Armstrong, Robert Virding and Mike Williams
- distributed, fault-tolerant, soft-real-
time, non-stop applications. It
supports hot swapping
- processes communicate using
message passing
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ML (1973)
Robin Milner/University of Edinburgh
- Hindley–Milner type system
- parametric polymorphism
- “Type Inference”
- ML Family (Standard ML,
OCaml), Clean, Haskell
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
REBOL (1997)
Carl Sassenrath
- "Relative Expression Based Object 
Language"
- dialecting: small, optimized,
Domain-Specific Language (DSL)
for code and data
- influenced JSON
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
• APL (1964) introduced: array programming,
influenced: functional programming
• ALGOL (1958) refined both structured procedural
programming and the discipline of language
specification.
• Simula (1967) first language designed to support
object-oriented programming; Smalltalk (1972)
followed with the first "purely" object-oriented
language.
• C (1969 - 1973) popular system programming
language
• Prolog (1972), first logic programming language.
• ML (1978) built a polymorphic type system on top of
Lisp, pioneering statically typed functional
programming languages.
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
FORTRAN (1957)
John Backus
- FORTRAN 2015
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
COBOL (1959)
Conference on Data Systems
Languages (CODASYL)
- COBOL 2014
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
23%
32%
45%
Python Fortran C
500k LOC
Gordon Moore - Intel co-founder
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
Intel 4004
10 µm Intel 80386 Pentium
0.8 µm
Itanium 2
Six-core Xeon 7400
8-core Itanium Poulson
32 nm
18-core Xeon Haswell-E5
22 nm
15-core Xeon Ivy Bridge-EX
Duo-core + GPU Core i7 Broadwell-U
14 nm
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
Intel 4004
10 µm Intel 80386 Pentium
0.8 µm
Itanium 2
Six-core Xeon 7400
8-core Itanium Poulson
32 nm
18-core Xeon Haswell-E5
22 nm
15-core Xeon Ivy Bridge-EX
Duo-core + GPU Core i7 Broadwell-U
14 nm
Apple A7
Apple A8
Apple A8X
20 nm
Gordon Bell - DEC early employee
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
Personal
Computers
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
Personal
Computers
Scalable
Clusters
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
Personal
Computers
Small Devices
Scalable
Clusters
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
Personal
Computers
Small Devices
Scalable
Clusters
Vaticano 2005
Vaticano 2013
2010 2011 2012 2013 20142006 2007 2008 2009
2010 2011 2012 2013 20142006 2007 2008 2009
2010 2011 2012 2013 20142006 2007 2008 2009
2017 60 anos de FORTRAN
2017 60 anos de FORTRAN
2014 55 anos de COBOL
2017 60 anos de FORTRAN
2014 55 anos de COBOL
2013 55 anos de LISP
2017 60 anos de FORTRAN
2014 55 anos de COBOL
2013 55 anos de LISP
2012 40 anos de Smalltalk
2017 60 anos de FORTRAN
2014 55 anos de COBOL
2013 55 anos de LISP
2012 40 anos de Smalltalk
2015 35 anos de ADA
Séc XVII Cálculo Newton/Leibniz
Séc XVII Cálculo Newton/Leibniz
1930's Lambda Calculus Alonzo Church
Séc XVII Cálculo Newton/Leibniz
1930's Lambda Calculus Alonzo Church
1939 Elo Rating System Arpad Elo
Séc XVII Cálculo Newton/Leibniz
1930's Lambda Calculus Alonzo Church
1939 Elo Rating System Arpad Elo
1975 Vector Space Model Gerald Salton
SPA e-commerce
SPA e-commerce
http://www.loja.com.br/#!/produtos/item-001
SPA e-commerce
http://www.loja.com.br/#!/produtos/item-001
http://www.loja.com.br/?_escaped_fragment_=/produtos/item-001
High Level
Numbers
Client #1
$ 4,000
$ 4,000
($ 7 MI/yr revenue - 0.68%)
Client #2
$ 100,000+
$ 100,000+
($ 800 MI/yr revenue - 0.15%)
• Minimum IT Cost:
• Minimum IT Cost:
• USD 1000 - Cloud Services
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• USD 4000 - 1 “Responsible” (Manager, Marketing, etc)
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• USD 4000 - 1 “Responsible” (Manager, Marketing, etc)
• Total: USD 8.000/month (USD 96.000/year)
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• USD 4000 - 1 “Responsible” (Manager, Marketing, etc)
• Total: USD 8.000/month (USD 96.000/year)
• Minimum Business Requirement:
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• USD 4000 - 1 “Responsible” (Manager, Marketing, etc)
• Total: USD 8.000/month (USD 96.000/year)
• Minimum Business Requirement:
• Revenue: > USD 2 MI / year
• Minimum IT Cost:
• USD 1000 - Cloud Services
• USD 3000 - 1 Developer
• USD 4000 - 1 “Responsible” (Manager, Marketing, etc)
• Total: USD 8.000/month (USD 96.000/year)
• Minimum Business Requirement:
• Revenue: > USD 2 MI / year
• IT Cost / Revenue ratio: < 5%
Increase Revenue
>
Lower Costs
Innovation
Impossible Yesterday
Possible Today
Innovation
Constraints
PREMATURE
OPTIMIZATION
is the Root of all Evil
THANKS!slideshare.net/akitaonrails

More Related Content

More from Fabio Akita

Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Fabio Akita
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPFabio Akita
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaFabio Akita
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersFabio Akita
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG CampinasFabio Akita
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Fabio Akita
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to RubyFabio Akita
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIFabio Akita
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening KeynoteFabio Akita
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017Fabio Akita
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APFabio Akita
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017Fabio Akita
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017Fabio Akita
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraFabio Akita
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilFabio Akita
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilFabio Akita
 
Elixir - Tolerância a Falhas para Adultos - Secot VIII Sorocaba
Elixir - Tolerância a Falhas para Adultos - Secot VIII SorocabaElixir - Tolerância a Falhas para Adultos - Secot VIII Sorocaba
Elixir - Tolerância a Falhas para Adultos - Secot VIII SorocabaFabio Akita
 
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada SantistaElixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada SantistaFabio Akita
 
QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos
QCON SP 2016 - Elixir: Tolerância a Falhas para AdultosQCON SP 2016 - Elixir: Tolerância a Falhas para Adultos
QCON SP 2016 - Elixir: Tolerância a Falhas para AdultosFabio Akita
 
"Elixir of Life" - Dev In Santos
"Elixir of Life" - Dev In Santos"Elixir of Life" - Dev In Santos
"Elixir of Life" - Dev In SantosFabio Akita
 

More from Fabio Akita (20)

Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All Evil
 
Elixir - Tolerância a Falhas para Adultos - Secot VIII Sorocaba
Elixir - Tolerância a Falhas para Adultos - Secot VIII SorocabaElixir - Tolerância a Falhas para Adultos - Secot VIII Sorocaba
Elixir - Tolerância a Falhas para Adultos - Secot VIII Sorocaba
 
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada SantistaElixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
 
QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos
QCON SP 2016 - Elixir: Tolerância a Falhas para AdultosQCON SP 2016 - Elixir: Tolerância a Falhas para Adultos
QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos
 
"Elixir of Life" - Dev In Santos
"Elixir of Life" - Dev In Santos"Elixir of Life" - Dev In Santos
"Elixir of Life" - Dev In Santos
 

Recently uploaded

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Premature Optimization 2.0 - Intercon 2016