139
September 26th, 2015

Javascript State of the Union 2015 - English

  • Upload
    huge

  • View
    29.261

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Javascript State of the Union 2015 - English

September 26th, 2015

Page 2: Javascript State of the Union 2015 - English

Javascript State of the Union

Huge

September 26th, 2015

Page 3: Javascript State of the Union 2015 - English

1. Introduction2. Where we came from

3. Where we are4. Where we are going to

5. Conclusion

Agenda

Page 4: Javascript State of the Union 2015 - English

Introduction.

Page 5: Javascript State of the Union 2015 - English

Caio Vaccaro.Senior Web Engineer | Huge. Developer Team Lead. NY / RIO. 8 years of experience. Front-End, Back-End, Infrastructure, Continuous integration, trainings.

@caiovaccaro

/in/caiovaccaro

/caiovaccaro

Page 6: Javascript State of the Union 2015 - English
Page 7: Javascript State of the Union 2015 - English
Page 8: Javascript State of the Union 2015 - English

We make digital products.

Page 9: Javascript State of the Union 2015 - English

State of the Union.

Page 10: Javascript State of the Union 2015 - English
Page 11: Javascript State of the Union 2015 - English

1. Why so many changes? 2. What changed? 3. What doesn’t change?

Introduction:

Page 12: Javascript State of the Union 2015 - English

Timeline.Introduction

Page 13: Javascript State of the Union 2015 - English

1. Imperative Languages. 2. Functional Languages.3. Computers and gadgets.4. Processors. 5. Companies. 6. Internet and browsers. 7. HTML/CSS/JS. 8. JS Frameworks.

Timeline:

Page 14: Javascript State of the Union 2015 - English

1. Imperative Languages. 2. Functional Languages.3. Computers and gadgets.4. Processors. 5. Companies. 6. Internet and browsers. 7. HTML/CSS/JS. 8. JS Frameworks.

Timeline:

Page 15: Javascript State of the Union 2015 - English

Where we came from.

Page 16: Javascript State of the Union 2015 - English

1950.

Page 17: Javascript State of the Union 2015 - English

1950

Fortran(Imperativa)Fortran(Imperative)

Page 18: Javascript State of the Union 2015 - English

1950

Fortran(Imperativa)Fortran(Imperative)

ComputadorComputer

Page 19: Javascript State of the Union 2015 - English

1950

Fortran(Imperativa)Fortran(Imperative)

Lisp(Funcional)Lisp(Functional)

ComputadorComputer

Page 20: Javascript State of the Union 2015 - English
Page 21: Javascript State of the Union 2015 - English

1950

IBM

Fortran(Imperativa)Fortran(Imperative)

Lisp(Funcional)Lisp(Functional)

ComputadorComputer

Page 22: Javascript State of the Union 2015 - English

Programming paradigms

1. Imperative.

2. Functional.

3. Reactive.

4. Object oriented.

5. Event oriented.

Page 23: Javascript State of the Union 2015 - English

1950

IBM

Fortran(Imperativa)Fortran(Imperative)

Lisp(Funcional)Lisp(Functional)

ComputadorComputer

Page 24: Javascript State of the Union 2015 - English

1950

Lisp(Funcional)Lisp(Functional)

Fortran(Imperativa)Fortran(Imperative)

Page 25: Javascript State of the Union 2015 - English

1950

Lisp(Funcional)Lisp(Functional)

Algol

Fortran(Imperativa)Fortran(Imperative)

Page 26: Javascript State of the Union 2015 - English

1970.

Page 27: Javascript State of the Union 2015 - English

1950

M.P.P

1970

Algol

Fortran

Lisp

Page 28: Javascript State of the Union 2015 - English

1950

M.P.P

1970

Algol

Fortran

Lisp

Page 29: Javascript State of the Union 2015 - English

1950

M.P.P

1970

Algol

Fortran

Lisp

IBM Xerox

Smalltalk (MVC, OOP)

Xerox & Apple

Page 30: Javascript State of the Union 2015 - English
Page 31: Javascript State of the Union 2015 - English

1950

M.P.P

1970

Algol

Fortran

Lisp

Smalltalk (MVC, OOP)

Page 32: Javascript State of the Union 2015 - English

Software architecture

1. MV*.

2. Microservices.

3. Peer-to-peer.

4. Publish-subscribe.

5. Dependency injection.

Page 33: Javascript State of the Union 2015 - English

1950

M.P.P

1970

Algol

Fortran

Lisp

Smalltalk (MVC, OOP)

Page 34: Javascript State of the Union 2015 - English

M.P.P

Lisp Scheme Haskell

1950 1970

Algol

Fortran Smalltalk (MVC, OOP)

C C++

Page 35: Javascript State of the Union 2015 - English

M.P.P

Concorrência

386

Concurrency

HTML

Lisp Scheme Haskell

1950 1970

Algol

Fortran Smalltalk (MVC, OOP)

C C++

Page 36: Javascript State of the Union 2015 - English

1990.

Page 37: Javascript State of the Union 2015 - English

M.P.P

Concorrência

386

Concurrency

HTML

Lisp Scheme Haskell

1950 1970

Algol

Fortran Smalltalk (MVC, OOP)

C C++

Page 38: Javascript State of the Union 2015 - English

M.P.P

Concorrência

386

Concurrency

HTML

Lisp Scheme Haskell

1950 1970Fortran Smalltalk (MVC, OOP)

1990

Page 39: Javascript State of the Union 2015 - English

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

1950 1970Fortran

Smalltalk (MVC, OOP)

1990

Python

Ruby

PHP

Java

(Binding)

AMD Yahoo eBay/Amazon

AltavistaW3C

Page 40: Javascript State of the Union 2015 - English

AMD Yahoo eBay/Amazon

AltavistaW3C

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

1950 1970Fortran

1990

Python

Ruby

PHP

Java

(Binding)

wwwEmail SMTP IRC

Page 41: Javascript State of the Union 2015 - English

AMD Yahoo eBay/Amazon

AltavistaW3C

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

HTML HTML2

CSS

1950 1970Fortran

1990

Python

Ruby

PHP

Java

(Binding)

wwwEmail SMTP IRC

Page 42: Javascript State of the Union 2015 - English

wwwEmail SMTP IRC

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

Netscape

Apache

HTML HTML2

CSS

1950 1970Fortran

1990

Python

Ruby

PHP

Java

(Binding)

Javascript

Page 43: Javascript State of the Union 2015 - English

wwwEmail SMTP IRC

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

Netscape

Apache

HTML HTML2

CSS

1950 1970Fortran

1990

Python

Ruby

PHP

Java

(Binding)

Javascript

IE

Page 44: Javascript State of the Union 2015 - English

2000.

Page 45: Javascript State of the Union 2015 - English

wwwEmail SMTP IRC

M.P.P

Athlon

Pentium

Pentium IIConcorrência

386M.P.P

Concorrência

386

Concurrency

Netscape

Apache

HTML HTML2

CSS

1950 1970Fortran

1990

Python

Ruby

PHP

Java

(Binding)

Javascript

IE

Page 46: Javascript State of the Union 2015 - English

M.P.P

Athlon

Pentium

Pentium II

wwwEmail SMTP IRC Netscape

Apache

HTML HTML2

CSS

Fortran

Python

Ruby

PHP

Java

(Binding)

Javascript

IE

1970 2000

Page 47: Javascript State of the Union 2015 - English

HTML HTML2

CSS

Fortran

Python

Ruby

PHP

Java

(Binding)

Javascript

1970

Python

Ruby

PHP

Java

(Binding)

Javascript

M.P.P

Athlon

Pentium

Pentium II

IE7...wwwEmail SMTP IRC Netscape

Apache

IEIE

2000

Page 48: Javascript State of the Union 2015 - English

IE7...wwwEmail SMTP IRC Netscape

Apache

IEIE

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

M.P.P

Athlon

Pentium

Pentium II

1970Fortran

Python

Ruby

PHP

Java

(Binding)

HTML HTML2

CSS

Javascript

2000

IEAjax JSON

XHTML

Page 49: Javascript State of the Union 2015 - English

IE7...wwwEmail SMTP IRC Netscape

Apache

IEIE

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

1970Fortran

Python

Ruby

PHP

Java

(Binding)

HTML HTML2

CSS

Javascript

2000

Wikipedia

Netflix

Hotmail

Pentium III Pentium 4M.P.P

Athlon

Pentium

Pentium II

Ajax JSON

XHTML

Page 50: Javascript State of the Union 2015 - English

“Front-end” was almost declarative.

Page 51: Javascript State of the Union 2015 - English
Page 52: Javascript State of the Union 2015 - English
Page 53: Javascript State of the Union 2015 - English
Page 54: Javascript State of the Union 2015 - English

Pentium III Pentium 4M.P.P

Athlon

Pentium

Pentium II

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

Javascript

2000

Wikipedia

Netflix

Hotmail

Ajax JSON

XHTML

IE7...wwwEmail SMTP IRC Netscape

Apache

IEIE

Page 55: Javascript State of the Union 2015 - English

Pentium III Pentium 4M.P.P

Athlon

Pentium

Pentium II

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

Javascript

wwwEmail SMTP IRC Netscape

Apache

IE7...

Wikipedia

Netflix

Hotmail

Ajax JSON

XHTML

2000

Windows 3.1 iMac I Laptops

Page 56: Javascript State of the Union 2015 - English

Pentium III Pentium 4M.P.P

Athlon

Pentium

Pentium II

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

Javascript

wwwEmail SMTP IRC Netscape

Apache

IE7...

Wikipedia

Netflix

Hotmail

Ajax JSON

XHTML

2000

Windows 3.1 iMac I LaptopsDual core

Quad core

Page 57: Javascript State of the Union 2015 - English

Pentium III Pentium 4M.P.P

Athlon

Pentium

Pentium II

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

Javascript

wwwEmail SMTP IRC Netscape

Apache

IE7...

Wikipedia

Netflix

Hotmail

Ajax JSON

XHTML

2000

Windows 3.1 iMac I LaptopsDual core

Quad core

Firefox

Chrome

Page 58: Javascript State of the Union 2015 - English

2000

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Wikipedia

Netflix

Hotmail

Ajax JSON

XHTML

Windows 3.1 iMac I LaptopsDual core

Quad core

Firefox

Chrome

Page 59: Javascript State of the Union 2015 - English

Ajax JSON

XHTML

Wikipedia

Netflix

Hotmail

2000

Dojo

Prototype.js

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Dual core

Quad core

Firefox

Chrome

Page 60: Javascript State of the Union 2015 - English
Page 61: Javascript State of the Union 2015 - English

Ajax JSON

XHTML

Wikipedia

Netflix

Hotmail

2000

Dojo

Prototype.js

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Dual core

Quad core

Firefox

Chrome

Page 62: Javascript State of the Union 2015 - English

Ajax JSON

XHTML

Wikipedia

Netflix

Hotmail

2000

Dojo

Prototype.js

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Dual core

Quad core

Firefox

Chrome

Facebook

Gmail

Page 63: Javascript State of the Union 2015 - English

Ajax JSON

XHTML

Wikipedia

Netflix

Hotmail

2000

Dojo

Prototype.js

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

HTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Dual core

Quad core

Firefox

Chrome

Facebook

Gmail

ECMA5

Ajax boomRESTful

IE8

Page 64: Javascript State of the Union 2015 - English

How was the code back then?

Page 65: Javascript State of the Union 2015 - English
Page 66: Javascript State of the Union 2015 - English
Page 67: Javascript State of the Union 2015 - English
Page 68: Javascript State of the Union 2015 - English
Page 69: Javascript State of the Union 2015 - English
Page 70: Javascript State of the Union 2015 - English
Page 71: Javascript State of the Union 2015 - English
Page 72: Javascript State of the Union 2015 - English

Wikipedia

Netflix

Hotmail

2000

Dojo

Prototype.js

Pentium III Pentium 4M.P.P

AMD Yahoo eBay/Amazon

AltavistaW3C

Google

Ajax JSON

XHTMLHTML HTML2

CSS

wwwEmail SMTP IRC IE7...

Dual core

Quad core

Firefox

Chrome

Facebook

Gmail

ECMA5

Ajax boomRESTful

IE8

Page 73: Javascript State of the Union 2015 - English

Python

Ruby

PHP

Java

(Binding) Node

2000

wwwEmail SMTP IRC IE7...

Firefox

Chrome

Dojo

Prototype.js

IE8

Ajax JSON

XHTMLHTML HTML2

CSS

ECMA5

Ajax boomRESTful

Page 74: Javascript State of the Union 2015 - English
Page 75: Javascript State of the Union 2015 - English

Ajax JSON

XHTMLHTML HTML2

CSS

ECMA5

Ajax boomRESTful

Python

Ruby

PHP

Java

(Binding) Node

2000

wwwEmail SMTP IRC IE7...

Firefox

Chrome

Dojo

Prototype.js

IE8

Page 76: Javascript State of the Union 2015 - English

Ajax JSON

XHTMLHTML HTML2

CSS

ECMA5

Ajax boomRESTful

Python

Ruby

PHP

Java

(Binding) Node

2000

Dojo

Prototype.js

YUIjQuerymooToolsCoffeeScriptJavascriptMVC

Sass

Page 77: Javascript State of the Union 2015 - English
Page 78: Javascript State of the Union 2015 - English

Ajax JSON

XHTMLHTML HTML2

CSS

ECMA5

Ajax boomRESTful

Python

Ruby

PHP

Java

(Binding) Node

2000

Dojo

Prototype.js

YUIjQuerymooToolsCoffeeScriptJavascriptMVC

Sass

Page 79: Javascript State of the Union 2015 - English

Ajax JSON

XHTMLHTML HTML2

CSS

ECMA5

Ajax boomRESTful

Dojo

Prototype.js

YUIjQuerymooToolsCoffeeScriptJavascriptMVC

Sass

iMac I Laptops iPhoneTouch 2

Google Car2000

Page 80: Javascript State of the Union 2015 - English

Where we are.

Page 81: Javascript State of the Union 2015 - English

2010-15.

Page 82: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

2010 2015

Page 83: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

iPhone iPadSmartTVs

2010 2015

Page 84: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

iPhone iPadSmartTVs

IE9

IE10 IE11

2010 2015

Page 85: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

HTML5

CSS3

ECMA5

Ajax boomRESTful

iPhone iPadSmartTVs

IE9

IE10 IE11

2010 2015

Page 86: Javascript State of the Union 2015 - English

GUI and “componentization” trend.

Page 87: Javascript State of the Union 2015 - English

“Modules speak to the rest of the

application when something interesting

happens and an intermediate layer

interprets and reacts to these

messages.”

Addy Osmani.

Page 88: Javascript State of the Union 2015 - English

1. MV*.

2. Binding.

3. SPA.

4. Desktop/Mobile.

GUI

Page 89: Javascript State of the Union 2015 - English
Page 90: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

HTML5

CSS3

ECMA5

Ajax boomRESTful

iPhone iPadSmartTVs

IE9

IE10 IE11

2010 2015

Page 91: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

IE9

IE10 IE11

HTML5

CSS3

ECMA5

Ajax boomRESTful

ExtJS

Processing

Mustache

Phonegap

Angular

Stylus

Three.js

Backbone

Knockout

Bootstrap

Underscore

Jasmine

Browserify

Ember

Socket.IO

Q

lodash

TodoMVC

Typescript

NPM

RxJSLess

2010 2015

Page 92: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

HTML5

CSS3

ECMA5

Ajax boomRESTful

IE9

IE10 IE11

ExtJS

Processing

Mustache

Phonegap

Angular

Stylus

Three.js

Backbone

Knockout

Bootstrap

Underscore

Jasmine

Browserify

Ember

Socket.IO

Q

lodash

TodoMVC

Typescript

NPM

RxJSLess

2010 2015

Page 93: Javascript State of the Union 2015 - English

i7, 6 cores12 threads

HTML5

CSS3

ECMA5

Ajax boomRESTful

IE9

IE10 IE11

ExtJS

Processing

Mustache

Phonegap

Angular

Stylus

Three.js

Backbone

Knockout

Bootstrap

Underscore

Jasmine

Browserify

Ember

Socket.IO

Q

lodash

TodoMVC

Typescript

NPM

RxJSLess

2010 2015

Edge

ECMA6WebAssemblyIsomorphic

Page 94: Javascript State of the Union 2015 - English

HTML5

CSS3

ECMA5

Ajax boomRESTful

IE9

IE10 IE11

ExtJS

Processing

Mustache

Phonegap

Angular

Stylus

Three.js

Backbone

Knockout

Bootstrap

Underscore

Jasmine

Browserify

Ember

Socket.IO

Q

lodash

TodoMVC

Typescript

NPM

RxJSLess

ECMA6WebAssemblyIsomorphic

Meteor

Momment

Drone

Webpack

Babel

Ionic

Immutable

React

Polymer

Aurelia

bacon.js

flow

Velocity

Maple

Relay

Angular 2

Cycle.js

Riot

Haml

Jade

2010 2015Edge

Page 95: Javascript State of the Union 2015 - English

WTF? What just happened?

Page 96: Javascript State of the Union 2015 - English

From spaghetti to GUIs.Where we are

Page 97: Javascript State of the Union 2015 - English

1. AJAX.2. MVC.

3. Binding.

4. Modules.

From spaghetti to GUIs:

Page 98: Javascript State of the Union 2015 - English

Client-side’s benefits.Where we are

Page 99: Javascript State of the Union 2015 - English

1. Better experience.2. Minimum on the Back-End.3. Independent Back-End.

4. Independent Front-End.

Client-side’s benefits:

Page 100: Javascript State of the Union 2015 - English

Client-Side’s problems.Where we are

Page 101: Javascript State of the Union 2015 - English

1. White page.2. SEO.3. Can be slow.

4. Duplicated logic.

5. No serious scalability.

Client-side’s problems before 2015:

Page 102: Javascript State of the Union 2015 - English

In 2015.

Page 103: Javascript State of the Union 2015 - English

A possible solution.Where we are

Page 104: Javascript State of the Union 2015 - English

1. Functional reactive programming.2. Immutable structure.3. Smarter query languages.

Client-side in 2015, a possible solution:

Page 105: Javascript State of the Union 2015 - English

1. White page.2. SEO.3. Can be slow.

4. Duplicated logic.

5. No serious scalability.

Client-side’s problems before 2015:

Page 106: Javascript State of the Union 2015 - English

Where we are going to.

Page 107: Javascript State of the Union 2015 - English

Javascript.Where we are going to

Page 108: Javascript State of the Union 2015 - English

ES6/ES7/ES8/Macros.

Page 109: Javascript State of the Union 2015 - English

More browser control.

Page 110: Javascript State of the Union 2015 - English

More Back-End in the Front.

Page 111: Javascript State of the Union 2015 - English

Parallelism and concurrency.

Page 112: Javascript State of the Union 2015 - English

Offline and wearables.

Page 113: Javascript State of the Union 2015 - English

Functional.

Page 114: Javascript State of the Union 2015 - English

Universal/Isomorphic.

Page 115: Javascript State of the Union 2015 - English

Web Assembly.

Page 116: Javascript State of the Union 2015 - English

2020.

Page 117: Javascript State of the Union 2015 - English

2020:

• Code on schools.

• More than 1 million jobs for programmers.

• Cars with AI.

• Delivery, transport and military drones.

• AI medical diagnosis.

• OS with augmented reality.

• 3D printing.

• Mobile payments.

• People and voice recognition.

• Robots.

• 4 million unemployed drivers.

Page 118: Javascript State of the Union 2015 - English

2020:

• Elastic search, GraphQL and others new query languages.

• Offline apps.

• Wearables.

• After-React.

• IOT, billions of small things connected to the internet.

• Military and industrial IOT.

• Smart homes.

• Jobs and companies driven by AI.

Page 119: Javascript State of the Union 2015 - English

Unemployment + Drones + AI + IOT + AR

Page 120: Javascript State of the Union 2015 - English

Conclusion.

Page 121: Javascript State of the Union 2015 - English

1. Why so many changes? 2. What changed? 3. What doesn’t change?

Conclusion:

Page 122: Javascript State of the Union 2015 - English
Page 123: Javascript State of the Union 2015 - English

But why so many changes?

Page 124: Javascript State of the Union 2015 - English

What do we do?

Page 125: Javascript State of the Union 2015 - English

Humans + Pain + Web = ∞

Page 126: Javascript State of the Union 2015 - English

1. Get close to our reality experience. 2. Go beyond.

Web:

Page 127: Javascript State of the Union 2015 - English

We solve problems.

Page 128: Javascript State of the Union 2015 - English
Page 129: Javascript State of the Union 2015 - English
Page 130: Javascript State of the Union 2015 - English
Page 131: Javascript State of the Union 2015 - English
Page 132: Javascript State of the Union 2015 - English
Page 133: Javascript State of the Union 2015 - English

Computers evolve. If the principles changed there would be no

base to evolution.

Page 134: Javascript State of the Union 2015 - English

Thanks:

• João Pagnoncelli.

• Rafael Gomes.

• Gabriel Godoy.

• Kevin Chevallier.

• Isabella Silveira.

• Douglas Monteiro.

• Marcos Rodrigues.

Page 135: Javascript State of the Union 2015 - English

Sources:

• https://en.wikipedia.org/wiki/Moore%27s_law

• https://en.wikipedia.org/wiki/Microprocessor_chronology

• https://en.wikipedia.org/wiki/Bell%27s_law_of_computer_classes

• https://en.wikipedia.org/wiki/Data_binding

• https://people.apache.org/~xli/presentations/history_Intel_CPU.pdf

• http://www.wolframalpha.com/docs/timeline/computable-knowledge-

history-5.html

• http://www.wolframalpha.com/docs/timeline/computable-knowledge-

history-6.html

• https://en.wikipedia.org/wiki/Timeline_of_computing

• https://en.wikipedia.org/wiki/History_of_computing_hardware

Page 136: Javascript State of the Union 2015 - English

Sources:

• https://en.wikipedia.org/wiki/Timeline_of_programming_languages

• https://medium.com/javascript-scene/get-ready-for-the-future-f4cf7610b985

• http://cdn.oreillystatic.com/news/graphics/prog_lang_poster.pdf

• http://www.worldsciencefestival.com/wp-content/uploads/2013/12/A-History-of-

Computer-Science.jpg

• http://archive.wired.com/images/article/magazine/1701/ff_mac3_f.jpg

• http://anddum.com/timeline/timelinepics/inteltimeline.gif

• http://brewhouse.io/images/posts/2015/05/frameworks-1-0.png

• http://webdesignergeeks.com/wp-content/uploads/2011/08/800px-

Web_development_timeline.png

• https://farm9.staticflickr.com/8529/8588701778_91aeb65377_o.png

Page 137: Javascript State of the Union 2015 - English

Sources:

• http://www.w3.org/2005/01/timelines/timeline-2500x998.png

• http://www.cooscountywatchdog.com/uploads/8/7/3/0/8730508/4030670.jpg?

697

• http://homepages.rpi.edu/home/37/clarkr6/public_html/images2/timeline.jpg

• http://images.hardwarecanucks.com/image//skymtl/CPU/INTEL-2014/

INTEL-2014-4.png

• http://i.imgur.com/NFysh.png

Page 138: Javascript State of the Union 2015 - English

Thank you.

@caiovaccaro /in/caiovaccaro /caiovaccaro

Page 139: Javascript State of the Union 2015 - English

September 26th, 2015