javascript: your new overlord

34
JavaScript: Your New Overlord

Upload: jaxconf

Post on 19-May-2015

482 views

Category:

Technology


2 download

DESCRIPTION

First misunderstanding, then huge semipopularity, and now, respect. Despite its many obvious deficiencies, Java's stupid little brother has gotten something profoundly right. What does the future hold for this duckling?

TRANSCRIPT

Page 1: JavaScript: Your New Overlord

JavaScript: Your New Overlord

Page 2: JavaScript: Your New Overlord

JSON: The World’s Best Loved Data Interchange Format

Page 3: JavaScript: Your New Overlord

JavaScript:The World’s Most Misunderstood

Programming Language

Java’s stupid little brother

Page 4: JavaScript: Your New Overlord

The World’s Most Popular Programming Language

Page 5: JavaScript: Your New Overlord

The World’s Most Popular Programming Language

The World’s Most Unpopular Programming Language

Page 6: JavaScript: Your New Overlord

It is the language that people use without bothering to learn it first.

Programming is complicated business. It should never be

undertaken in ignorance.

Page 7: JavaScript: Your New Overlord

Java Applets

The biggest failure in the history of software1995

Page 8: JavaScript: Your New Overlord

Java Applets

The biggest failure in the history of software

Page 9: JavaScript: Your New Overlord
Page 10: JavaScript: Your New Overlord
Page 11: JavaScript: Your New Overlord

Ten Days in May

Mocha

Page 12: JavaScript: Your New Overlord

Scheme SelfJava

LiveScript

Page 13: JavaScript: Your New Overlord

Scheme SelfJava

LiveScriptJavaScript

Page 14: JavaScript: Your New Overlord

Scheme SelfJava

LiveScriptJavaScript

JScript

Page 15: JavaScript: Your New Overlord

Scheme SelfJava

LiveScriptJavaScript

JScript ECMAScript

Page 16: JavaScript: Your New Overlord

“Another software technology will come along and kill off the web,

just as it killed news, gopher, et al. And that judgment day will arrive

very soon – in the next two to three years, not 25 years from now.”

George F. ColonyChairman of the Board and CEOForrester Research, Inc. [2000]

http://web.archive.org/web/20001019084041/http://www.forrester.com/ER/Mark eting/1,1503,214,FF.html

Page 17: JavaScript: Your New Overlord

JavaScript was a failed language.

It should have died when Netscape died.

Page 18: JavaScript: Your New Overlord

JavaScript has Good Parts.

Page 19: JavaScript: Your New Overlord

Statically scoped first class functions with lexical closure

var Y = function (le) { return (function (f) { return f(f); }(function (f) { return le(function (x) { return f(f)(x); }); })); };

Page 20: JavaScript: Your New Overlord

Prototypal Inheritance

An object containing

public methods

An object containing

instance data

Page 21: JavaScript: Your New Overlord

Beginners, scientists,and everybody in between

Page 22: JavaScript: Your New Overlord

How IE8 Spends Its Time

• Average time allocation of the Alexa 100:

Layout 43.16% Rendering 27.25%

HTM

L 2.

81%

Mar

shal

ling

7.34

%

DO

M 5.

05%

Form

at 8.

66%

JScr

ipt 3

.23%

Oth

er 2

.5%

Page 23: JavaScript: Your New Overlord

High Performance JavaScript Engines

Page 24: JavaScript: Your New Overlord

Everywhere

• Browser• Operating Systems• Databases• Servers• Mobile• Televisions

Page 25: JavaScript: Your New Overlord

High Performance Data Structures

Page 26: JavaScript: Your New Overlord

Securing JavaScriptCaja http://code.google.com/p/google-caja/ADsafe http://www.ADsafe.org/DR Ses es-lab.googlecode.com/files/dr-ses.pdf

Page 27: JavaScript: Your New Overlord

JavaScript: The Universal Virtual Machine

Page 28: JavaScript: Your New Overlord

GWT

Java JavaScriptso it can run everywhere

 

Page 29: JavaScript: Your New Overlord

spidermonkey.cpp |=> clang |=> emscripten |=> closure |=> js.js

Page 30: JavaScript: Your New Overlord

New Languages

• CoffeeScript• Kaffeine• Move• Objective-J• Sibilant• ZedScript• and over a hundred more

Page 31: JavaScript: Your New Overlord

Old Languages• C++• C#• Forth• Haskell• Java• Lua• Ocaml• Pascal

• Perl• Python• Rebol• Ruby• Scala• Scheme• Smalltalk• Tcl

Page 32: JavaScript: Your New Overlord

A better compilation target.

goto

Page 33: JavaScript: Your New Overlord

JavaScript:

The World’s Most Important Programming Language

Page 34: JavaScript: Your New Overlord

Thank you and good night.