the future of firefox and javascript

19
The Future of Firefox and JavaScript John Resig (ejohn.org) Mozilla Corporation / jQuery JavaScript Library October 3rd, 2007 - Future of Web Apps

Upload: jeresig

Post on 15-May-2015

23.334 views

Category:

Documents


1 download

DESCRIPTION

The presentation that I gave at Future of Web Apps, London, October 3, 2007. More information here: http://ejohn.org/blog/future-of-firefox-and-javascript/

TRANSCRIPT

Page 1: The Future of Firefox and JavaScript

The Future ofFirefox and JavaScript

John Resig (ejohn.org)Mozilla Corporation / jQuery JavaScript Library

October 3rd, 2007 - Future of Web Apps

Page 2: The Future of Firefox and JavaScript

The Future of Firefox✦ Graphics

✦ SVG✦ Canvas

✦ Video and Audio✦ Offline Web Applications✦ XMLHttpRequest++✦ Desktop Integration

Page 3: The Future of Firefox and JavaScript

SVG✦ SVG Foreign Object

✦ Import normal HTML elements✦ Demo: http://starkravingfinkle.org/blog/2007/07/firefox-3-svg-foreignobject/

✦ Speed Improvements in the pipeline✦ Joost built on Mozilla platform

Page 4: The Future of Firefox and JavaScript

Canvas 3D

Page 5: The Future of Firefox and JavaScript

Canvas 3D✦ Works like normal 2D Canvas✦ Thin layer to OpenGL✦ Can embed native shader scripts

✦ Run natively by the GPU✦ Extension: http://people.mozilla.com/~vladimir/canvas3d/

Page 6: The Future of Firefox and JavaScript

Shader Scripting✦ <script type=”x-shader/x-fragment”>

void main(void) { gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); }</script><script type=”x-shader/x-vertex”> attribute vec4 myVertex; uniform mat4 myPMVMatrix; void main(void) { gl_Position = myPMVMatrix * myVertex; }</script>

Page 7: The Future of Firefox and JavaScript

<video/> and <audio/>✦ Pioneered by Opera✦ Generic means of playing video and audio✦ Full JavaScript API✦ Guaranteed to play, at least, Ogg Theora✦ Plugin more video/audio types✦ Demo: http://www.double.co.nz/video_test/

Page 8: The Future of Firefox and JavaScript

Offline Web Apps✦ Very new territory✦ Three Specs:

✦ Mozilla✦ Google Gears✦ WHATWG

✦ Working to converge!✦ A final amalgam will be in Firefox 3

Page 9: The Future of Firefox and JavaScript

Offline Web Apps✦ Global Storage

✦ Cookies++✦ File caching (CSS, Images, etc.)✦ offline/online-mode detection✦ File Uploads Queueing✦ Some SQL-like stuff (work in progress)

Page 10: The Future of Firefox and JavaScript

XMLHttpRequest++✦ Cross-domain XMLHttpRequest

✦ Already landed, in Firefox 3✦ JSON (De-)Serialization

✦ object.toJSONString();✦ string.parseJSON();

Page 11: The Future of Firefox and JavaScript

Desktop Integration✦ Webrunner

✦ Deployable web applications✦ (Built on XULRunner)

✦ Prism (Still in Planning)✦ Webrunner in Firefox✦ Bookmark puts an icon on the desktop✦ Launches a dedicated application

Page 12: The Future of Firefox and JavaScript

The Future of JavaScript✦ “Old” Versions:

✦ Firefox 1.5: JavaScript 1.6✦ Firefox 2.0: JavaScript 1.7

✦ New Versions:✦ Firefox 3: JavaScript 1.8✦ Firefox 4 (?): JavaScript 2

✦ Virtual Machines✦ Server-Side JavaScript

Page 13: The Future of Firefox and JavaScript

JavaScript 2✦ Optional Type Annotation

✦ var foo : string = “”;✦ type Pair = [ int, string ];✦ var bar : Vector.<Pair>;

✦ Classes✦ class User {

var name : string; var age : int;}

Page 14: The Future of Firefox and JavaScript

JavaScript 2✦ Block-Scoped Variables

✦ let foo = “test”;✦ Packages

✦ package com.mozilla.Foo;import com.jquery.query;query(“div”);

✦ Dictionaries✦ Map.<*, int>

Page 15: The Future of Firefox and JavaScript

Tamarin✦ Tamarin

✦ New Virtual Machine from Adobe✦ Perfect for ActionScript

✦ (a mutant cousin of JavaScript 2)✦ The Three Monkies:

✦ ActionMonkey✦ ScreamingMonkey✦ IronMonkey

Page 16: The Future of Firefox and JavaScript

Three Monkies✦ ActionMonkey

✦ Integrating Tamarin into SpiderMonkey✦ Powering Firefox 4 (?) + JavaScript 2

✦ ScreamingMonkey✦ Forcing Tamarin into Internet Explorer✦ (Kicking and screaming?)

✦ IronMonkey✦ Bringing Python + Ruby to Tamarin

Page 17: The Future of Firefox and JavaScript

Server-Side JavaScript✦ As old as JavaScript itself✦ Seeing a strong resurgence✦ Web Application Dev:

✦ Helma✦ Phobos

✦ Application Dev:✦ Spidermonkey✦ Rhino

Page 18: The Future of Firefox and JavaScript

Rhino✦ JavaScript implemented in Java

✦ Full JS 1.6 Support✦ Upcoming JS 1.7 Support

✦ Full access to Java packages✦ Weird fun:

✦ var myString = new java.lang.String();✦ Awesome new territory:

✦ var myThread = new java.lang.Thread();✦ DOM to the Server

Page 19: The Future of Firefox and JavaScript

Questions, et. al.✦ Bright future! Enjoy!✦ John Resig

http://ejohn.org/