Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
JSLOL                           brendan@mozilla.orgTuesday, October 4, 2011
JSLOL                                            brendan@mozilla.org                    •      History, goalsTuesday, Octo...
JSLOL                                            brendan@mozilla.org                    •      History, goals             ...
JSLOL                                            brendan@mozilla.org                    •      History, goals             ...
JSLOL                                            brendan@mozilla.org                    •      History, goals             ...
JSLOL                                            brendan@mozilla.org                    •      History, goals             ...
A very brief history                                  mozilla          2Tuesday, October 4, 2011
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
A very brief history          • Ten days in May 1995: “Mocha”, form validation, img rollovers, scripting of Java          ...
The Harmony goals                              mozilla          3Tuesday, October 4, 2011
The Harmony goals          • Be a better language for writing:                                                mozilla     ...
The Harmony goals          • Be a better language for writing:                • complex applications                      ...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
The Harmony goals          • Be a better language for writing:                • complex applications                • libr...
Approved for ES6                             mozilla          4Tuesday, October 4, 2011
Approved for ES6          • let, const, function in block scope                                                  mozilla  ...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Approved for ES6          • let, const, function in block scope          • destructuring: let {x, y} = pt; let [s, v, o] =...
Yet more approved for ES6                                      mozilla          5Tuesday, October 4, 2011
Yet more approved for ES6          • Binary data:                                      mozilla          5Tuesday, October ...
Yet more approved for ES6          • Binary data:                • const Point2D = new StructType({ x: uint32, y: uint32 }...
Yet more approved for ES6          • Binary data:                • const Point2D = new StructType({ x: uint32, y: uint32 }...
Yet more approved for ES6          • Binary data:                • const Point2D = new StructType({ x: uint32, y: uint32 }...
Quasi-Literals                           mozilla          6Tuesday, October 4, 2011
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages                               ...
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages          • Backtick-quoted str...
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages          • Backtick-quoted str...
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages          • Backtick-quoted str...
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages          • Backtick-quoted str...
Quasi-Literals          • Injection-safer string interpolation and domain-specific languages          • Backtick-quoted str...
Classes sort of made it, but face existential doubt                                                                mozilla...
Classes sort of made it, but face existential doubt          • Sugar for prototypal object pattern, also supports closure ...
Classes sort of made it, but face existential doubt          • Sugar for prototypal object pattern, also supports closure ...
Triangle (the proto operator)                                          mozilla          8Tuesday, October 4, 2011
Triangle (the proto operator)          • Instead of var obj = {__proto__: base, a: 1, b: 2}, use                       let...
Triangle (the proto operator)          • Instead of var obj = {__proto__: base, a: 1, b: 2}, use                       let...
The monocle-mustache operator                                          mozilla          9Tuesday, October 4, 2011
The monocle-mustache operator          • Inspired by PrototypeJS’s Object.extend                                          ...
The monocle-mustache operator          • Inspired by PrototypeJS’s Object.extend          • base.{a:1, b:2} // warning: up...
The monocle-mustache operator          • Inspired by PrototypeJS’s Object.extend          • base.{a:1, b:2} // warning: up...
The monocle-mustache operator          • Inspired by PrototypeJS’s Object.extend          • base.{a:1, b:2} // warning: up...
The monocle-mustache operator          • Inspired by PrototypeJS’s Object.extend          • base.{a:1, b:2} // warning: up...
Class pattern using triangle-monocle-mustache                                                          mozilla          10...
Class pattern using triangle-monocle-mustache          • const px = Name.create(‘x’), py = Name.create(‘y’);              ...
Syntax, yay                           mozilla          11Tuesday, October 4, 2011
Syntax, yay          • Do we want class syntax, or triangle-monocle-mustache -- or triangle-monocle-            equals-mus...
Syntax, yay          • Do we want class syntax, or triangle-monocle-mustache -- or triangle-monocle-            equals-mus...
Syntax, yay          • Do we want class syntax, or triangle-monocle-mustache -- or triangle-monocle-            equals-mus...
Syntax, yay          • Do we want class syntax, or triangle-monocle-mustache -- or triangle-monocle-            equals-mus...
Syntax, yay          • Do we want class syntax, or triangle-monocle-mustache -- or triangle-monocle-            equals-mus...
Not yet in Harmony: arrow function syntax                                                      mozilla          12Tuesday,...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: arrow function syntax          • Arrow function syntax, instead of λ, ƒ, or # (want to save # for late...
Not yet in Harmony: block lambda revival          • Inspired by Smalltalk via Ruby               let empty = {||};        ...
More block lambda revival          • Paren-free calls, control effects: you know you want it...                 b = a.map ...
Syntax, yay again                              mozilla          15Tuesday, October 4, 2011
Syntax, yay again          • Do we need shorter function syntax at all?                                                   ...
Syntax, yay again          • Do we need shorter function syntax at all?          • Some say no. @mikeal: “I got 99 problem...
Syntax, yay again          • Do we need shorter function syntax at all?          • Some say no. @mikeal: “I got 99 problem...
Syntax, yay again          • Do we need shorter function syntax at all?          • Some say no. @mikeal: “I got 99 problem...
Syntax, yay again          • Do we need shorter function syntax at all?          • Some say no. @mikeal: “I got 99 problem...
Syntax, yay again          • Do we need shorter function syntax at all?          • Some say no. @mikeal: “I got 99 problem...
Harmony tune-up                            mozilla          16Tuesday, October 4, 2011
Harmony tune-up          • It’s good to question the process as well as the product                                       ...
Harmony tune-up          • It’s good to question the process as well as the product          • Harmony is both conservativ...
Harmony tune-up          • It’s good to question the process as well as the product          • Harmony is both conservativ...
Harmony tune-up          • It’s good to question the process as well as the product          • Harmony is both conservativ...
Harmony tune-up          • It’s good to question the process as well as the product          • Harmony is both conservativ...
Good news tonight                              mozilla          17Tuesday, October 4, 2011
Good news tonight          • ES6 is being drafted                                   mozilla          17Tuesday, October 4,...
Good news tonight          • ES6 is being drafted          • It contains lots of awesome already                          ...
Good news tonight          • ES6 is being drafted          • It contains lots of awesome already          • Prototyping in...
Good news tonight          • ES6 is being drafted          • It contains lots of awesome already          • Prototyping in...
Good news tonight          • ES6 is being drafted          • It contains lots of awesome already          • Prototyping in...
Help us, pretty/usable syntax pony-corn!                                                     mozilla          18Tuesday, O...
RiverTrail: Parallel JS                                    mozilla          19Tuesday, October 4, 2011
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                              ...
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                • map, reduce,...
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                • map, reduce,...
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                • map, reduce,...
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                • map, reduce,...
RiverTrail: Parallel JS          • A ParallelArray library, like typed arrays but immutable.                • map, reduce,...
RiverTrail demo sample code          • the ParallelArray constructor builds on typed arrays:               NBody.private.i...
ParallelArray methods in action          • combine method is a workhorse (takes variable number of args)               "an...
Always bet on JSTuesday, October 4, 2011
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Always bet on JS              •     First they said JS couldn’t be useful                    for building “rich Internet a...
Q&A          • @BrendanEich on twitter          • brendan@mozilla.org          • es-discuss@mozilla.org                   ...
Upcoming SlideShare
Loading in …5
×

Always bet on JS • JSLOL

12,154 views

Published on

Always bet on JS • First they said JS couldn’t be useful for building “rich Internet apps” • Then they said it couldn’t be fast • Then they said it couldn’t be fixed • Then it couldn’t do multicore/GPU • Wrong every time! • My advice: always bet on JSTuesday, October 4, 2011

Published in: Technology, News & Politics
  • Be the first to comment

×