javascript landscape

37
JAVASCRIPT Monday, April 11, 2011

Upload: janne-kuuskeri

Post on 28-Jan-2015

117 views

Category:

Documents


3 download

DESCRIPTION

Talk given at the Aalto University

TRANSCRIPT

Page 1: JavaScript Landscape

JAVASCRIPT

Monday, April 11, 2011

Page 2: JavaScript Landscape

Me, Myself and I

Mobisoft / StrataGen / DDSSenior Software Architect

TUTResearcher

Ph.D. student

Monday, April 11, 2011

Page 3: JavaScript Landscape

Groke

JavaScript

Frameworks

Monday, April 11, 2011

Page 4: JavaScript Landscape

JavaScript:The World's Most Misunderstood

Programming Language

Monday, April 11, 2011

Page 5: JavaScript Landscape

“JavaScript is the most popular programming language in the world”

Monday, April 11, 2011

Page 6: JavaScript Landscape

“JavaScript is the most popular programming language in the world”

...“but it’s also the least popular programming language in the world”

- Douglas Crockford

Monday, April 11, 2011

Page 7: JavaScript Landscape

The (mis)conception

“It’s a toy language”

“Even designers can do it”

“What good is a scripting language anyway”

Monday, April 11, 2011

Page 8: JavaScript Landscape

The (mis)conception

“It’s a toy language”

“Even designers can do it”

“What good is a scripting language anyway”

Strong Typing vs. Strong Testing

Monday, April 11, 2011

Page 9: JavaScript Landscape

The Culprit

Monday, April 11, 2011

Page 10: JavaScript Landscape

“Programmers are artists and they don’t want anybody to mandate

which language to use”

Monday, April 11, 2011

Page 11: JavaScript Landscape

“Programmers are artists and they don’t want anybody to mandate

which language to use”

“Lisp in C’s Clothing”

Monday, April 11, 2011

Page 12: JavaScript Landscape

“Programmers are artists and they don’t want anybody to mandate

which language to use”

“Lisp in C’s Clothing”

Pitfalls in the Language

Monday, April 11, 2011

Page 13: JavaScript Landscape

“Programmers are artists and they don’t want anybody to mandate

which language to use”

“Lisp in C’s Clothing”

Pitfalls in the Language

Typecasting

Monday, April 11, 2011

Page 14: JavaScript Landscape

The Jungle

ECMAScript

JavaScript

JScript

ActionScript

Huh?

Monday, April 11, 2011

Page 15: JavaScript Landscape

The Jungle

ECMAScript

JavaScript JScript ActionScript

Monday, April 11, 2011

Page 16: JavaScript Landscape

Mocha

Monday, April 11, 2011

Page 17: JavaScript Landscape

Mocha

LiveScript

Monday, April 11, 2011

Page 18: JavaScript Landscape

Mocha

LiveScript

JavaScript

Monday, April 11, 2011

Page 19: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScript

Monday, April 11, 2011

Page 20: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScriptECMAScript

Monday, April 11, 2011

Page 21: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScriptECMAScript1,2,3

Monday, April 11, 2011

Page 22: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScriptECMAScript1,2,3

ActionScript

Monday, April 11, 2011

Page 23: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScriptECMAScript1,2,3

ActionScriptES4?

Monday, April 11, 2011

Page 24: JavaScript Landscape

Mocha

LiveScript

JavaScript

JScriptECMAScript1,2,3

ActionScriptES4?

ES 3.1 ES Harmony

Monday, April 11, 2011

Page 25: JavaScript Landscape

JavaScript as a general- purpose programming

language?

Monday, April 11, 2011

Page 26: JavaScript Landscape

Monday, April 11, 2011

Page 27: JavaScript Landscape

The Pioneers

HelmaPhobos

JaxerKDE scripting

Mac Dashboard widgetsGoogle Desktop gadgets

Monday, April 11, 2011

Page 28: JavaScript Landscape

The Pioneers

HelmaPhobos

JaxerKDE scripting

Mac Dashboard widgetsGoogle Desktop gadgets

Monday, April 11, 2011

Page 29: JavaScript Landscape

DOM

JS

Rhino

JS

Browser JVM

V8

JS

OS

C++Java

Monday, April 11, 2011

Page 30: JavaScript Landscape

Common Ground?

Monday, April 11, 2011

Page 31: JavaScript Landscape

Common Ground?

January 29th, 2009

Monday, April 11, 2011

Page 32: JavaScript Landscape

Common Ground?

January 29th, 2009

ServerJS

Monday, April 11, 2011

Page 33: JavaScript Landscape

Common Ground?

January 29th, 2009

ServerJS

CommonJS

Monday, April 11, 2011

Page 34: JavaScript Landscape

CommonJS

Module system (exports/require)Package system

Module APIs (file, socket, binary, ...)Web server interface - JSGI

PromisesWorkers

Monday, April 11, 2011

Page 35: JavaScript Landscape

Implementations

NarwhalCouchDBPersevereRingoJS

SproutCorenode.jsv8cgi

Flusspferd

Monday, April 11, 2011

Page 36: JavaScript Landscape

Why should I care?

A single programming language for the client and the server

Code reuse and testing

Many developers are already familiar with JavaScript

The browser wars has spawned extremely fast JavaScript interpreters

Monday, April 11, 2011

Page 37: JavaScript Landscape

Further

JavaScript: The Good Parts

http://wiki.commonjs.org/wiki/CommonJS

http://narwhaljs.org/

Monday, April 11, 2011