< & >

Alex Russell <slightlyoff@google.com>
Full Frontal JavaScript, Nov 12th, 2010

Who The Heck Am I?

And Where The Heck Are We?

http://en.wikipedia.org/wiki/File:Harrison%27s_Chronometer_H5.JPG

What Have We Won?

http://www.flickr.com/photos/bombeador/481721249
http://www.flickr.com/photos/seeminglee/4556156477
http://www.flickr.com/photos/pagedooley/2121472112/

Compounding Factors

http://www.flickr.com/photos/funadium/2241611298

What's So Slow, Anyway?

  • JS blocks rendering, document.write()
  • Parallel requests...sometimes
  • Request latency
  • Uncanny interactive valley
  • JS runs on the UI thread

What Should A Blank Page Weigh?

http://www.flickr.com/photos/adelaide_archivist/3262863212

Say What?

We May Already Be Stuck

http://www.flickr.com/photos/novembering/2681258711

What Does It Cost To Wrap?

http://www.flickr.com/photos/joe57spike/4930560340

So What Should We Be Asking For?

  • Higher-level abstractions
  • DOM-as-component-system
  • Idiomatic APIs
  • Say-what-you-mean syntax
  • Composition primitives

Huh?

Think this:

<input type="range" min="0" max="50" value="0" />

And:

<input type="location" />

Not yet

 navigator.geolocation.getCurrentPosition(successCallback,
                                         errorCallback,
                                         {maximumAge:600000});

Declarative begets DOM

DOM begets API

How Can We Get It Faster?

http://www.flickr.com/photos/earcos/4812384484/

Adding Chrome Frame Support

HTTP header:
X-UA-Compatible: chrome=1
Or meta tag:
<meta http-equiv="X-UA-Compatible" content="chrome=1">

That's it

The Apps You Build Matter Most

Questions?

Thank You