SlideShare une entreprise Scribd logo
1  sur  81
/ John Dalziel / @crashposition / Worthing Digital / 7th November 02013

FAST
SLIM
CORRECT

/ The Story Of How

THE “GLUE OF THE INTERNET”
BECAME THE WORLD’S MOST
POPULAR PROGRAMMING
LANGUAGE
image: http://imgur.com/7pOwI
/ FAST SLIM CORRECT

[SPOILER]
JAVASCRIPT

is the Glue Of The Internet
/ FAST SLIM CORRECT

http://creativejs.com/2013/06/the-race-for-speed-part-1-the-javascript-engine-family-tree/
http://creativejs.com/2013/06/the-race-for-speed-part-2-how-javascript-compilers-work/
http://creativejs.com/2013/06/the-race-for-speed-part-3-javascript-compiler-strategies/
http://creativejs.com/2013/06/the-race-for-speed-part-4-the-future-for-javascript/

THE RACE FOR SPEED
/ FAST SLIM CORRECT

What is JavaScript?
some History bits
some Science bits
some Examples
/ FAST SLIM CORRECT

JAVASCRIPT RECIPES
A WEB BROWSER
A JAVASCRIPT ENGINE
JAVASCRIPT CODE
HTML CODE

RECIPE:

+

+

+ HTML
/ FAST SLIM CORRECT

WHAT IS JAVASCRIPT?

a native programming language for the web
/ FAST SLIM CORRECT

ANATOMY OF A MODERN WEB PAGE

CSS

JavaScript
/ FAST SLIM CORRECT

ANATOMY OF A MODERN WEB PAGE
DEMO
/ FAST SLIM CORRECT

JAVASCRIPT IS USEFUL
KEYBOARD,
MOUSE & TOUCH

MONITOR & SPEAKERS

WEB LANGUAGE

WEB SERVERS & APIs
/ FAST SLIM CORRECT

JAVASCRIPT IS EVERYWHERE
• JavaScript is built into the BROWSER
• on 6 million TABLETS,
• on over 1 billion SMARTPHONES,
• on over 2 billion COMPUTERS,
• and in plenty of other places to...
/ FAST SLIM CORRECT

JAVASCRIPT IS POPULAR

http://redmonk.com/sogrady/2013/02/28/language-rankings-1-13/
/ FAST SLIM CORRECT

“JavaScript is 18...
now it’s not my responsibility;
it can go out, vote, join the Navy,
get drunk and gamble in most states.”

BRENDAN EICH
MOZILLA, 2013
/ FAST SLIM CORRECT

HELLO WORLD
the History Bit: Part 1
/ FAST SLIM CORRECT

1995
1995

/ FAST SLIM CORRECT

THE WEB in 1995
1995

/ FAST SLIM CORRECT

THE WEB in 1995
1995

/ FAST SLIM CORRECT

THE WEB in 1995
1995

/ FAST SLIM CORRECT

THE WEB in 1995
1995

/ FAST SLIM CORRECT

ANATOMY of a WEB PAGE
HTML
1995

/ FAST SLIM CORRECT

INTERNET EXPLORER vs NETSCAPE
1995

/ FAST SLIM CORRECT

NETSCAPE’S VISION FOR JAVASCRIPT
“We aimed to provide a
“glue language” for the
Web designers and part
time programmers who
were building Web
content from
components such as
images, plugins, and
Java applets.”
“We saw Java as the
“component language”
used by higher-priced
programmers.”
1995

/ FAST SLIM CORRECT

BRENDAN EICH DESIGNS JMOCHARIPT
AIVASC RIP
L VE
T
...IN 10 DAYS
Joins NETSCAPE in April 1995.
1995

/ FAST SLIM CORRECT

“IT COULD HAVE BEEN WORSE”
SCHEME
SELF
JAVA

}

closures
prototypes
first class functions
array = []
obj = {}

eval()
global objects
with(){}
/ FAST SLIM CORRECT

BECOMING USEFUL
the History Bit: Part 2
/ FAST SLIM CORRECT

“It may be slow.
But it’s hard to use.”

ANDREW S TANENBAUM
regarding the IBM PC

http://www.gdargaud.net/Humor/QuotesHardwareSoftware.html
1995 - 2000

/ FAST SLIM CORRECT

DHTML
DYNAMIC HTML
FORM VALIDATION

+

+

+ HTML

TICKERS & POP UPS

DEMO
RECIPE:

ROLLOVERS

DEMO
2000

/ FAST SLIM CORRECT

XHR
XMLHttpRequest
2000

2004

2005

OUTLOOK WEB

GOOGLE MAIL

GOOGLE MAPS

RECIPE:

+

+

+ HTML + XHR
2005

/ FAST SLIM CORRECT

AJAX
ASYNCHRONOUS JAVASCRIPT and XML

JESSE JAMES GARRETT
RECIPE:

+

+

+ HTML + XHR + XML
/ FAST SLIM CORRECT

THINGS inside THINGS
the Science Bit: Part 1
The difference between:
a Web Browser
a JavaScript Engine
a JavaScript Compiler
/ FAST SLIM CORRECT

a WEB BROWSER

WEB BROWSER
/ FAST SLIM CORRECT

inside a WEB BROWSER
USER INTERFACE

DATA

BROWSER ENGINE
RENDERING ENGINE

NETWORKING JS ENGINE DISPLAY

WEB BROWSER
/ FAST SLIM CORRECT

inside a WEB BROWSER
USER INTERFACE

DATA

BROWSER ENGINE
RENDERING ENGINE

NETWORKING JS ENGINE DISPLAY

WEB BROWSER
/ FAST SLIM CORRECT

a JAVASCRIPT ENGINE

JAVASCRIPT ENGINE
WEB BROWSER
/ FAST SLIM CORRECT

inside a JAVASCRIPT ENGINE
LEXER

TOKENS

PARSER
AST

NATIVE
CODE

INTERPRET
TRANSLAT
ER
BYTE CODE
OR
JAVASCRIPT ENGINE
WEB BROWSER
/ FAST SLIM CORRECT

a JAVASCRIPT COMPILER
COMPILER

TOKENS

COMPILER
AST

NATIVE
CODE

COMPILER

BYTE CODE

COMPILER

JAVASCRIPT ENGINE
WEB BROWSER
/ FAST SLIM CORRECT

BROWSER / ENGINE / COMPILER
COMPILER

COMPILER

COMPILER

COMPILER

JAVASCRIPT ENGINE

WEB BROWSER
/ FAST SLIM CORRECT

FAST, SLIM, CORRECT
the History Bit: Part 3
/ FAST SLIM CORRECT

FAST, SLIM, CORRECT
Fast can accomplish more work in
Faster code

less time.
Faster code can tackle more complex tasks.

Slim
Slim code downloads faster.
Some slim code can compile faster.

Correct
Correct code will do what you expected.
/ FAST SLIM CORRECT

“Fast, Slim, Correct.
Pick any two, so long as one is correct.”

BRENDAN EICH, MOZILLA
regarding JavaScript compilers
1998

/ FAST SLIM CORRECT

JAVASCRIPT ENGINE FAMILY TREE

JAVASCRIPT in 1998
Fast
Slim
Correct
1998+

/ FAST SLIM CORRECT

WEB STANDARDS

JAVASCRIPT after 1998
Fast
Slim
Correct
2006+

/ FAST SLIM CORRECT

LIBRARIES and MINIFIERS
JAVASCRIPT
var dateRE = /^createdOnid/;var dates=[],
els=document.getElementsByTagName('*');
for (var i=els.length;i--;) {
if (dateRE.test(els[i].id]) {
dates.push(els[i])
}
};

JQUERY
var dates = $('*[id^="createdOnid"]');

JAVASCRIPT in 2006
Fast
Slim
Correct
2006

/ FAST SLIM CORRECT

JAVASCRIPT ENGINE FAMILY TREE

JAVASCRIPT in 2006
Fast
Slim
Correct
/ FAST SLIM CORRECT

MAKING JS FAST
the Science Bit: Part 2

How to make JavaScript Fast
/ FAST SLIM CORRECT

inside a JAVASCRIPT ENGINE
LEXER

TOKENS

PARSER
AST

NATIVE
CODE

INTERPRET
TRANSLAT
ER
BYTE CODE
OR
JAVASCRIPT ENGINE
WEB BROWSER
/ FAST SLIM CORRECT

http://creativejs.com/2013/06/the-race-for-speed-part-1-the-javascript-engine-family-tree/
http://creativejs.com/2013/06/the-race-for-speed-part-2-how-javascript-compilers-work/
http://creativejs.com/2013/06/the-race-for-speed-part-3-javascript-compiler-strategies/
http://creativejs.com/2013/06/the-race-for-speed-part-4-the-future-for-javascript/

THE RACE FOR SPEED
/ FAST SLIM CORRECT

FAST NATIVE CODE

magic happens...

JAVASCRIPT
2008+

/ FAST SLIM CORRECT

JAVASCRIPT ENGINE FAMILY TREE

JAVASCRIPT after 2008
Fast
Slim
Correct
/ FAST SLIM CORRECT

“any application that can be written in
JavaScript,
will eventually be written in JavaScript”

JEFF ATWOOD
STACKOVERFLOW, 2009
/ FAST SLIM CORRECT

JAVASCRIPT APPLICATIONS
Games and Applications
/ FAST SLIM CORRECT

JAVASCRIPT APPLICATIONS
GAMES

RECIPE:

+

+

+

+ WebGL
/ FAST SLIM CORRECT

JAVASCRIPT APPLICATIONS
INTERACTIVE DATA VISUALISATION

RECIPE:

+

+

+
/ FAST SLIM CORRECT

JAVASCRIPT APPLICATIONS
COMMUNICATION
GOOGLE HANGOUTS

RECIPE:

+

+

+

+ WebRTC

FACEBOOK CHAT
/ FAST SLIM CORRECT

JAVASCRIPT AS EVERYTHING
Compilers and Emulators
/ FAST SLIM CORRECT

JAVASCRIPT as EMULATOR
PC, LINUX, APPLE II, C64, NES, ZX SPECTRUM, ATARI ST, AMIGA...

http://copy.sh/v24/
http://bellard.org/jslinux/

http://estyjs.azurewebsites.net/

http://jsspeccy.zxdemo.org/

http://archive.vg/blog/12-feature/114-a-big-list-of-browser-based-emulators-and-ports-of-classic-games

RECIPE:

+

+

+
/ FAST SLIM CORRECT

JAVASCRIPT as COMPILER
PASCAL, LUA, SMALLTALK, JAVASCRIPT

http://www.teamten.com/lawrence/proje
cts/turbo_pascal_compiler/demo/

https://github.com/mozilla/narcissus

RECIPE:

+

+

+
2013

/ FAST SLIM CORRECT

JAVASCRIPT as MONEY
BITCOIN WALLET

http://vimeo.com/77289033

RECIPE:

+

+

+

+
/ FAST SLIM CORRECT

EVERYTHING AS JAVASCRIPT
Cross-Compilers and LLVM
/ FAST SLIM CORRECT

COMPILE to JAVASCRIPT
COFFEESCRIPT, TYPESCRIPT, DART to JAVASCRIPT
/ FAST SLIM CORRECT

COMPILE to JAVASCRIPT
LLVM to JAVASCRIPT
/ FAST SLIM CORRECT

COMPILE to JAVASCRIPT
C to LLVM to JAVASCRIPT

C

CLANG
/ FAST SLIM CORRECT

“JavaScript is assembly language for the web.”

SCOTT HANSELMAN
MICROSOFT, 2011
/ FAST SLIM CORRECT

COMPILE to JAVASCRIPT
UNREAL ENGINE 3 to JAVASCRIPT

asm.js
CLANG

DEMO
/ FAST SLIM CORRECT

JAVASCRIPT AS DATA
JSON
2006

/ FAST SLIM CORRECT

JSON
JAVASCRIPT OBJECT NOTATION
XML

JSON

<Person>
<name>Douglas Crockford</name>
<discovers>JSON</discovers>
<employer>Yahoo</employer>
</Person>

{“name”:”Douglas Crockford”,
”discovers”:”JSON”, employer:”Yahoo”}

DOUGLAS CROCKFORD
RECIPE:

+
2006

/ FAST SLIM CORRECT

JSON
NOSQL DATABASES

RECIPE:

+
2006

/ FAST SLIM CORRECT

JSON
NEST THERMOSTAT

http://www.wiredprairie.us/blog/index.php/archives/1754

RECIPE:

+
2006

/ FAST SLIM CORRECT

JSON
MERCEDES S CLASS

http://www4.mercedes-benz.com/manual-cars/ba/foss/content/en/assets/FOSS_licences.pdf

RECIPE:

+
2009

JAVASCRIPT ON A SERVER
NodeJS

/ FAST SLIM CORRECT
2009

/ FAST SLIM CORRECT

NODEJS
JAVASCRIPT ENGINE ON THE SERVER

JAVASCRIPT ENGINE
2009

/ FAST SLIM CORRECT

NODEJS
DESKTOP AUTOMATION
GRUNT

RECIPE:

+

+

PHOTOSHOP GENERATOR
/ FAST SLIM CORRECT

JAVASCRIPT ON HARDWARE
MicroPCs and MicroControllers
/ FAST SLIM CORRECT

COMPUTER ON A BOARD
RASPBERRY PI
/ FAST SLIM CORRECT

COMPUTER ON A BOARD
RASPBERRY PI AQUARIUM

http://theoreticalideations.com/2013/09/03/its-alive-my-node-jsrasperry-pi-powered-aquarium-is-up-and-running/

RECIPE:

+

+

+

+ Aquarium
/ FAST SLIM CORRECT

MICROCONTROLLERS
ARDUINO, BEAGLEBOARD, TESSEL, LEGO MINDSTORMS-NXT

https://github.com/rwaldron/johnny-five

RECIPE:

+

http://beagleboard.org/support/bonescript/

+

http://tessel.io/

https://nodejsmodules.org/tags/lego
/ FAST SLIM CORRECT

ROBOTS
NODEJS WiFi-EXTENDING ROBOT

http://glench.com/make/nodejs-robot/

RECIPE:

+

+

+ Arduino + Robot
/ FAST SLIM CORRECT

ROBOTS
PARROT AR DRONE 2.0

https://github.com/felixge/node-ar-drone

RECIPE:

+

+

+ AR Drone
/ FAST SLIM CORRECT

WHAT HAVE WE LEARNED?
Please Make It Stop Now
/ FAST SLIM CORRECT

C, JAVA

LUA, PASCAL
/ FAST SLIM CORRECT

THANK YOU
For Your Time
/ John Dalziel / @crashposition / Worthing Digital / 7th November 02013

FAST
SLIM
CORRECT

/ The Story Of How

THE “GLUE OF THE INTERNET”
BECAME THE WORLD’S MOST
POPULAR PROGRAMMING
LANGUAGE
image: http://imgur.com/7pOwI

Contenu connexe

Tendances

LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) Sascha Sambale
 
Blazor - An Introduction
Blazor - An IntroductionBlazor - An Introduction
Blazor - An IntroductionJamieTaylor112
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
Javascript evolution
Javascript evolutionJavascript evolution
Javascript evolutionvinukumar_vs
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An OverviewNaveen Pete
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of JavascriptIrfan Maulana
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN StackValeri Karpov
 
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"Fwdays
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014Simona Clapan
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stackPraveen Gubbala
 
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJSFestUA
 
React server side rendering performance
React server side rendering performanceReact server side rendering performance
React server side rendering performanceNick Dreckshage
 
Building Isomorphic JavaScript Apps - NDC 2015
Building Isomorphic JavaScript Apps - NDC 2015Building Isomorphic JavaScript Apps - NDC 2015
Building Isomorphic JavaScript Apps - NDC 2015Eirik Vullum
 
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakBrief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakRiza Fahmi
 
JSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsJSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsSpike Brehm
 

Tendances (20)

The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
Blazor - An Introduction
Blazor - An IntroductionBlazor - An Introduction
Blazor - An Introduction
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
Blazor
BlazorBlazor
Blazor
 
Javascript evolution
Javascript evolutionJavascript evolution
Javascript evolution
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
 
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
 
React server side rendering performance
React server side rendering performanceReact server side rendering performance
React server side rendering performance
 
Building Isomorphic JavaScript Apps - NDC 2015
Building Isomorphic JavaScript Apps - NDC 2015Building Isomorphic JavaScript Apps - NDC 2015
Building Isomorphic JavaScript Apps - NDC 2015
 
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapakBrief Intro to Phoenix - Elixir Meetup at BukaLapak
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
 
JSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic AppsJSConf US 2014: Building Isomorphic Apps
JSConf US 2014: Building Isomorphic Apps
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Blazor v1.1
Blazor v1.1Blazor v1.1
Blazor v1.1
 

En vedette

Evolution of Programming Languages
Evolution of Programming LanguagesEvolution of Programming Languages
Evolution of Programming LanguagesSayanee Basu
 
Javascript Myths and its Evolution
Javascript Myths and its EvolutionJavascript Myths and its Evolution
Javascript Myths and its EvolutionDeepu S Nath
 
War of Native Speed on Web (SITCON2016)
War of Native Speed on Web (SITCON2016)War of Native Speed on Web (SITCON2016)
War of Native Speed on Web (SITCON2016)Min-Yih Hsu
 
Web assembly overview by Mikhail Sorokovsky
Web assembly overview by Mikhail SorokovskyWeb assembly overview by Mikhail Sorokovsky
Web assembly overview by Mikhail SorokovskyValeriia Maliarenko
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssemblyDaniel Budden
 
Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Boyan Mihaylov
 
Js engine performance
Js engine performanceJs engine performance
Js engine performancepaullfc
 
Server-side Technologies in Java
Server-side Technologies in JavaServer-side Technologies in Java
Server-side Technologies in JavaAnirban Majumdar
 
Family tree: English Language
Family tree: English Language Family tree: English Language
Family tree: English Language A. Simoes
 
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...Codemotion
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engineDuoyi Wu
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Languageguestceb98b
 

En vedette (16)

History of programming
History of programmingHistory of programming
History of programming
 
Evolution of Programming Languages
Evolution of Programming LanguagesEvolution of Programming Languages
Evolution of Programming Languages
 
Javascript Myths and its Evolution
Javascript Myths and its EvolutionJavascript Myths and its Evolution
Javascript Myths and its Evolution
 
The Future of Javascript
The Future of JavascriptThe Future of Javascript
The Future of Javascript
 
War of Native Speed on Web (SITCON2016)
War of Native Speed on Web (SITCON2016)War of Native Speed on Web (SITCON2016)
War of Native Speed on Web (SITCON2016)
 
Web assembly overview by Mikhail Sorokovsky
Web assembly overview by Mikhail SorokovskyWeb assembly overview by Mikhail Sorokovsky
Web assembly overview by Mikhail Sorokovsky
 
An Introduction to WebAssembly
An Introduction to WebAssemblyAn Introduction to WebAssembly
An Introduction to WebAssembly
 
Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?Is WebAssembly the killer of JavaScript?
Is WebAssembly the killer of JavaScript?
 
Js engine performance
Js engine performanceJs engine performance
Js engine performance
 
Server-side Technologies in Java
Server-side Technologies in JavaServer-side Technologies in Java
Server-side Technologies in Java
 
Family tree: English Language
Family tree: English Language Family tree: English Language
Family tree: English Language
 
Vuejs testing
Vuejs testingVuejs testing
Vuejs testing
 
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engine
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Language
 

Similaire à Fast Slim Correct: The History and Evolution of JavaScript.

State of Akka 2017 - The best is yet to come
State of Akka 2017 - The best is yet to comeState of Akka 2017 - The best is yet to come
State of Akka 2017 - The best is yet to comeKonrad Malawski
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyJean-Sebastien Delfino
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Tools that help and speed up RWD dev
Tools that help  and speed up RWD devTools that help  and speed up RWD dev
Tools that help and speed up RWD devMatjaž Korošec
 
Rethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceRethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceMark Pieszak
 
Not Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsNot Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsKonrad Malawski
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopMark Masterson
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindSam Keen
 
IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)Ben Hall
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusUni Systems S.M.S.A.
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJSFITC
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Alexandre Morgaut
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup PerformanceGreg Whalin
 
Serverless Swift for Mobile Developers
Serverless Swift for Mobile DevelopersServerless Swift for Mobile Developers
Serverless Swift for Mobile DevelopersAll Things Open
 

Similaire à Fast Slim Correct: The History and Evolution of JavaScript. (20)

State of Akka 2017 - The best is yet to come
State of Akka 2017 - The best is yet to comeState of Akka 2017 - The best is yet to come
State of Akka 2017 - The best is yet to come
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
 
SCA Reaches the Cloud
SCA Reaches the CloudSCA Reaches the Cloud
SCA Reaches the Cloud
 
DavidWible_res
DavidWible_resDavidWible_res
DavidWible_res
 
Tools that help and speed up RWD dev
Tools that help  and speed up RWD devTools that help  and speed up RWD dev
Tools that help and speed up RWD dev
 
Rethinking Angular Architecture & Performance
Rethinking Angular Architecture & PerformanceRethinking Angular Architecture & Performance
Rethinking Angular Architecture & Performance
 
Not Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsNot Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabs
 
Fowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing WorkshopFowa Miami 09 Cloud Computing Workshop
Fowa Miami 09 Cloud Computing Workshop
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)IronRuby - A brave new world for .Net (NDC2010)
IronRuby - A brave new world for .Net (NDC2010)
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
 
TRWResume-10-2016
TRWResume-10-2016TRWResume-10-2016
TRWResume-10-2016
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
 
HTTP2
HTTP2HTTP2
HTTP2
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Serverless Swift for Mobile Developers
Serverless Swift for Mobile DevelopersServerless Swift for Mobile Developers
Serverless Swift for Mobile Developers
 

Plus de John Dalziel

A Brief History of Time Zones and DST.pdf
A Brief History of Time Zones and DST.pdfA Brief History of Time Zones and DST.pdf
A Brief History of Time Zones and DST.pdfJohn Dalziel
 
From zero to website
From zero to websiteFrom zero to website
From zero to websiteJohn Dalziel
 
Introduction to AWS (2020)
Introduction to AWS (2020)Introduction to AWS (2020)
Introduction to AWS (2020)John Dalziel
 
Make your own Amazon Alexa Skill
Make your own Amazon Alexa SkillMake your own Amazon Alexa Skill
Make your own Amazon Alexa SkillJohn Dalziel
 
Web Application Architectures on AWS
Web Application Architectures on AWSWeb Application Architectures on AWS
Web Application Architectures on AWSJohn Dalziel
 
Adventures at EMF Camp 2018
Adventures at EMF Camp 2018Adventures at EMF Camp 2018
Adventures at EMF Camp 2018John Dalziel
 
A brief history of Leap Seconds
A brief history of Leap SecondsA brief history of Leap Seconds
A brief history of Leap SecondsJohn Dalziel
 
An Introduction to AWS
An Introduction to AWSAn Introduction to AWS
An Introduction to AWSJohn Dalziel
 

Plus de John Dalziel (8)

A Brief History of Time Zones and DST.pdf
A Brief History of Time Zones and DST.pdfA Brief History of Time Zones and DST.pdf
A Brief History of Time Zones and DST.pdf
 
From zero to website
From zero to websiteFrom zero to website
From zero to website
 
Introduction to AWS (2020)
Introduction to AWS (2020)Introduction to AWS (2020)
Introduction to AWS (2020)
 
Make your own Amazon Alexa Skill
Make your own Amazon Alexa SkillMake your own Amazon Alexa Skill
Make your own Amazon Alexa Skill
 
Web Application Architectures on AWS
Web Application Architectures on AWSWeb Application Architectures on AWS
Web Application Architectures on AWS
 
Adventures at EMF Camp 2018
Adventures at EMF Camp 2018Adventures at EMF Camp 2018
Adventures at EMF Camp 2018
 
A brief history of Leap Seconds
A brief history of Leap SecondsA brief history of Leap Seconds
A brief history of Leap Seconds
 
An Introduction to AWS
An Introduction to AWSAn Introduction to AWS
An Introduction to AWS
 

Dernier

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Dernier (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

Fast Slim Correct: The History and Evolution of JavaScript.

  • 1. / John Dalziel / @crashposition / Worthing Digital / 7th November 02013 FAST SLIM CORRECT / The Story Of How THE “GLUE OF THE INTERNET” BECAME THE WORLD’S MOST POPULAR PROGRAMMING LANGUAGE image: http://imgur.com/7pOwI
  • 2. / FAST SLIM CORRECT [SPOILER] JAVASCRIPT is the Glue Of The Internet
  • 3. / FAST SLIM CORRECT http://creativejs.com/2013/06/the-race-for-speed-part-1-the-javascript-engine-family-tree/ http://creativejs.com/2013/06/the-race-for-speed-part-2-how-javascript-compilers-work/ http://creativejs.com/2013/06/the-race-for-speed-part-3-javascript-compiler-strategies/ http://creativejs.com/2013/06/the-race-for-speed-part-4-the-future-for-javascript/ THE RACE FOR SPEED
  • 4. / FAST SLIM CORRECT What is JavaScript? some History bits some Science bits some Examples
  • 5. / FAST SLIM CORRECT JAVASCRIPT RECIPES A WEB BROWSER A JAVASCRIPT ENGINE JAVASCRIPT CODE HTML CODE RECIPE: + + + HTML
  • 6. / FAST SLIM CORRECT WHAT IS JAVASCRIPT? a native programming language for the web
  • 7. / FAST SLIM CORRECT ANATOMY OF A MODERN WEB PAGE CSS JavaScript
  • 8. / FAST SLIM CORRECT ANATOMY OF A MODERN WEB PAGE DEMO
  • 9. / FAST SLIM CORRECT JAVASCRIPT IS USEFUL KEYBOARD, MOUSE & TOUCH MONITOR & SPEAKERS WEB LANGUAGE WEB SERVERS & APIs
  • 10. / FAST SLIM CORRECT JAVASCRIPT IS EVERYWHERE • JavaScript is built into the BROWSER • on 6 million TABLETS, • on over 1 billion SMARTPHONES, • on over 2 billion COMPUTERS, • and in plenty of other places to...
  • 11. / FAST SLIM CORRECT JAVASCRIPT IS POPULAR http://redmonk.com/sogrady/2013/02/28/language-rankings-1-13/
  • 12. / FAST SLIM CORRECT “JavaScript is 18... now it’s not my responsibility; it can go out, vote, join the Navy, get drunk and gamble in most states.” BRENDAN EICH MOZILLA, 2013
  • 13. / FAST SLIM CORRECT HELLO WORLD the History Bit: Part 1
  • 14. / FAST SLIM CORRECT 1995
  • 15. 1995 / FAST SLIM CORRECT THE WEB in 1995
  • 16. 1995 / FAST SLIM CORRECT THE WEB in 1995
  • 17. 1995 / FAST SLIM CORRECT THE WEB in 1995
  • 18. 1995 / FAST SLIM CORRECT THE WEB in 1995
  • 19. 1995 / FAST SLIM CORRECT ANATOMY of a WEB PAGE HTML
  • 20. 1995 / FAST SLIM CORRECT INTERNET EXPLORER vs NETSCAPE
  • 21. 1995 / FAST SLIM CORRECT NETSCAPE’S VISION FOR JAVASCRIPT “We aimed to provide a “glue language” for the Web designers and part time programmers who were building Web content from components such as images, plugins, and Java applets.” “We saw Java as the “component language” used by higher-priced programmers.”
  • 22. 1995 / FAST SLIM CORRECT BRENDAN EICH DESIGNS JMOCHARIPT AIVASC RIP L VE T ...IN 10 DAYS Joins NETSCAPE in April 1995.
  • 23. 1995 / FAST SLIM CORRECT “IT COULD HAVE BEEN WORSE” SCHEME SELF JAVA } closures prototypes first class functions array = [] obj = {} eval() global objects with(){}
  • 24. / FAST SLIM CORRECT BECOMING USEFUL the History Bit: Part 2
  • 25. / FAST SLIM CORRECT “It may be slow. But it’s hard to use.” ANDREW S TANENBAUM regarding the IBM PC http://www.gdargaud.net/Humor/QuotesHardwareSoftware.html
  • 26. 1995 - 2000 / FAST SLIM CORRECT DHTML DYNAMIC HTML FORM VALIDATION + + + HTML TICKERS & POP UPS DEMO RECIPE: ROLLOVERS DEMO
  • 27. 2000 / FAST SLIM CORRECT XHR XMLHttpRequest 2000 2004 2005 OUTLOOK WEB GOOGLE MAIL GOOGLE MAPS RECIPE: + + + HTML + XHR
  • 28. 2005 / FAST SLIM CORRECT AJAX ASYNCHRONOUS JAVASCRIPT and XML JESSE JAMES GARRETT RECIPE: + + + HTML + XHR + XML
  • 29. / FAST SLIM CORRECT THINGS inside THINGS the Science Bit: Part 1 The difference between: a Web Browser a JavaScript Engine a JavaScript Compiler
  • 30. / FAST SLIM CORRECT a WEB BROWSER WEB BROWSER
  • 31. / FAST SLIM CORRECT inside a WEB BROWSER USER INTERFACE DATA BROWSER ENGINE RENDERING ENGINE NETWORKING JS ENGINE DISPLAY WEB BROWSER
  • 32. / FAST SLIM CORRECT inside a WEB BROWSER USER INTERFACE DATA BROWSER ENGINE RENDERING ENGINE NETWORKING JS ENGINE DISPLAY WEB BROWSER
  • 33. / FAST SLIM CORRECT a JAVASCRIPT ENGINE JAVASCRIPT ENGINE WEB BROWSER
  • 34. / FAST SLIM CORRECT inside a JAVASCRIPT ENGINE LEXER TOKENS PARSER AST NATIVE CODE INTERPRET TRANSLAT ER BYTE CODE OR JAVASCRIPT ENGINE WEB BROWSER
  • 35. / FAST SLIM CORRECT a JAVASCRIPT COMPILER COMPILER TOKENS COMPILER AST NATIVE CODE COMPILER BYTE CODE COMPILER JAVASCRIPT ENGINE WEB BROWSER
  • 36. / FAST SLIM CORRECT BROWSER / ENGINE / COMPILER COMPILER COMPILER COMPILER COMPILER JAVASCRIPT ENGINE WEB BROWSER
  • 37. / FAST SLIM CORRECT FAST, SLIM, CORRECT the History Bit: Part 3
  • 38. / FAST SLIM CORRECT FAST, SLIM, CORRECT Fast can accomplish more work in Faster code less time. Faster code can tackle more complex tasks. Slim Slim code downloads faster. Some slim code can compile faster. Correct Correct code will do what you expected.
  • 39. / FAST SLIM CORRECT “Fast, Slim, Correct. Pick any two, so long as one is correct.” BRENDAN EICH, MOZILLA regarding JavaScript compilers
  • 40. 1998 / FAST SLIM CORRECT JAVASCRIPT ENGINE FAMILY TREE JAVASCRIPT in 1998 Fast Slim Correct
  • 41. 1998+ / FAST SLIM CORRECT WEB STANDARDS JAVASCRIPT after 1998 Fast Slim Correct
  • 42. 2006+ / FAST SLIM CORRECT LIBRARIES and MINIFIERS JAVASCRIPT var dateRE = /^createdOnid/;var dates=[], els=document.getElementsByTagName('*'); for (var i=els.length;i--;) { if (dateRE.test(els[i].id]) { dates.push(els[i]) } }; JQUERY var dates = $('*[id^="createdOnid"]'); JAVASCRIPT in 2006 Fast Slim Correct
  • 43. 2006 / FAST SLIM CORRECT JAVASCRIPT ENGINE FAMILY TREE JAVASCRIPT in 2006 Fast Slim Correct
  • 44. / FAST SLIM CORRECT MAKING JS FAST the Science Bit: Part 2 How to make JavaScript Fast
  • 45. / FAST SLIM CORRECT inside a JAVASCRIPT ENGINE LEXER TOKENS PARSER AST NATIVE CODE INTERPRET TRANSLAT ER BYTE CODE OR JAVASCRIPT ENGINE WEB BROWSER
  • 46. / FAST SLIM CORRECT http://creativejs.com/2013/06/the-race-for-speed-part-1-the-javascript-engine-family-tree/ http://creativejs.com/2013/06/the-race-for-speed-part-2-how-javascript-compilers-work/ http://creativejs.com/2013/06/the-race-for-speed-part-3-javascript-compiler-strategies/ http://creativejs.com/2013/06/the-race-for-speed-part-4-the-future-for-javascript/ THE RACE FOR SPEED
  • 47. / FAST SLIM CORRECT FAST NATIVE CODE magic happens... JAVASCRIPT
  • 48. 2008+ / FAST SLIM CORRECT JAVASCRIPT ENGINE FAMILY TREE JAVASCRIPT after 2008 Fast Slim Correct
  • 49. / FAST SLIM CORRECT “any application that can be written in JavaScript, will eventually be written in JavaScript” JEFF ATWOOD STACKOVERFLOW, 2009
  • 50. / FAST SLIM CORRECT JAVASCRIPT APPLICATIONS Games and Applications
  • 51. / FAST SLIM CORRECT JAVASCRIPT APPLICATIONS GAMES RECIPE: + + + + WebGL
  • 52. / FAST SLIM CORRECT JAVASCRIPT APPLICATIONS INTERACTIVE DATA VISUALISATION RECIPE: + + +
  • 53. / FAST SLIM CORRECT JAVASCRIPT APPLICATIONS COMMUNICATION GOOGLE HANGOUTS RECIPE: + + + + WebRTC FACEBOOK CHAT
  • 54. / FAST SLIM CORRECT JAVASCRIPT AS EVERYTHING Compilers and Emulators
  • 55. / FAST SLIM CORRECT JAVASCRIPT as EMULATOR PC, LINUX, APPLE II, C64, NES, ZX SPECTRUM, ATARI ST, AMIGA... http://copy.sh/v24/ http://bellard.org/jslinux/ http://estyjs.azurewebsites.net/ http://jsspeccy.zxdemo.org/ http://archive.vg/blog/12-feature/114-a-big-list-of-browser-based-emulators-and-ports-of-classic-games RECIPE: + + +
  • 56. / FAST SLIM CORRECT JAVASCRIPT as COMPILER PASCAL, LUA, SMALLTALK, JAVASCRIPT http://www.teamten.com/lawrence/proje cts/turbo_pascal_compiler/demo/ https://github.com/mozilla/narcissus RECIPE: + + +
  • 57. 2013 / FAST SLIM CORRECT JAVASCRIPT as MONEY BITCOIN WALLET http://vimeo.com/77289033 RECIPE: + + + +
  • 58. / FAST SLIM CORRECT EVERYTHING AS JAVASCRIPT Cross-Compilers and LLVM
  • 59. / FAST SLIM CORRECT COMPILE to JAVASCRIPT COFFEESCRIPT, TYPESCRIPT, DART to JAVASCRIPT
  • 60. / FAST SLIM CORRECT COMPILE to JAVASCRIPT LLVM to JAVASCRIPT
  • 61. / FAST SLIM CORRECT COMPILE to JAVASCRIPT C to LLVM to JAVASCRIPT C CLANG
  • 62. / FAST SLIM CORRECT “JavaScript is assembly language for the web.” SCOTT HANSELMAN MICROSOFT, 2011
  • 63. / FAST SLIM CORRECT COMPILE to JAVASCRIPT UNREAL ENGINE 3 to JAVASCRIPT asm.js CLANG DEMO
  • 64. / FAST SLIM CORRECT JAVASCRIPT AS DATA JSON
  • 65. 2006 / FAST SLIM CORRECT JSON JAVASCRIPT OBJECT NOTATION XML JSON <Person> <name>Douglas Crockford</name> <discovers>JSON</discovers> <employer>Yahoo</employer> </Person> {“name”:”Douglas Crockford”, ”discovers”:”JSON”, employer:”Yahoo”} DOUGLAS CROCKFORD RECIPE: +
  • 66. 2006 / FAST SLIM CORRECT JSON NOSQL DATABASES RECIPE: +
  • 67. 2006 / FAST SLIM CORRECT JSON NEST THERMOSTAT http://www.wiredprairie.us/blog/index.php/archives/1754 RECIPE: +
  • 68. 2006 / FAST SLIM CORRECT JSON MERCEDES S CLASS http://www4.mercedes-benz.com/manual-cars/ba/foss/content/en/assets/FOSS_licences.pdf RECIPE: +
  • 69. 2009 JAVASCRIPT ON A SERVER NodeJS / FAST SLIM CORRECT
  • 70. 2009 / FAST SLIM CORRECT NODEJS JAVASCRIPT ENGINE ON THE SERVER JAVASCRIPT ENGINE
  • 71. 2009 / FAST SLIM CORRECT NODEJS DESKTOP AUTOMATION GRUNT RECIPE: + + PHOTOSHOP GENERATOR
  • 72. / FAST SLIM CORRECT JAVASCRIPT ON HARDWARE MicroPCs and MicroControllers
  • 73. / FAST SLIM CORRECT COMPUTER ON A BOARD RASPBERRY PI
  • 74. / FAST SLIM CORRECT COMPUTER ON A BOARD RASPBERRY PI AQUARIUM http://theoreticalideations.com/2013/09/03/its-alive-my-node-jsrasperry-pi-powered-aquarium-is-up-and-running/ RECIPE: + + + + Aquarium
  • 75. / FAST SLIM CORRECT MICROCONTROLLERS ARDUINO, BEAGLEBOARD, TESSEL, LEGO MINDSTORMS-NXT https://github.com/rwaldron/johnny-five RECIPE: + http://beagleboard.org/support/bonescript/ + http://tessel.io/ https://nodejsmodules.org/tags/lego
  • 76. / FAST SLIM CORRECT ROBOTS NODEJS WiFi-EXTENDING ROBOT http://glench.com/make/nodejs-robot/ RECIPE: + + + Arduino + Robot
  • 77. / FAST SLIM CORRECT ROBOTS PARROT AR DRONE 2.0 https://github.com/felixge/node-ar-drone RECIPE: + + + AR Drone
  • 78. / FAST SLIM CORRECT WHAT HAVE WE LEARNED? Please Make It Stop Now
  • 79. / FAST SLIM CORRECT C, JAVA LUA, PASCAL
  • 80. / FAST SLIM CORRECT THANK YOU For Your Time
  • 81. / John Dalziel / @crashposition / Worthing Digital / 7th November 02013 FAST SLIM CORRECT / The Story Of How THE “GLUE OF THE INTERNET” BECAME THE WORLD’S MOST POPULAR PROGRAMMING LANGUAGE image: http://imgur.com/7pOwI

Notes de l'éditeur

  1. A modern web page without JS or CSS.
  2. JavaScript glues technologies together.
  3. JavaScript is built into every browser.
  4. JavaScript is the most popular programming language in the world
  5. The browser wars
  6. ex Silicon Graphics (7 years) Joined Netscape in April 1995 prototyped language (Mocha &gt; LiveScript &gt; JS) and SpiderMonkey compiler in 10 days in May 1995.
  7. ex Silicon Graphics (7 years) Joined Netscape in April 1995 prototyped language (Mocha &gt; LiveScript &gt; JS) and SpiderMonkey compiler in 10 days in May 1995.
  8. 2000: XHR arrived In IE5 to support Outlook Web access
  9. A very efficient data format
  10. - JS is web native, other langs can become js, js can emulate other langs - JS engine runs in the browser and out of it.