javaone 2008: what’s new in ajax

132
What’s New in Ajax Ben Galbraith and Dion Almaer Founders, Ajaxian.com TS-6807 1 Sunday, May 11, 2008

Upload: dion

Post on 01-Nov-2014

6.383 views

Category:

Technology


1 download

DESCRIPTION

Ben and Dion give an overview of the state of Ajax at JavaOne, using Java technology too, and a fun Wii darts demo that you can see more info on at: http://ajaxian.com/archives/wii-darts-powering-ajax-applications-with-wii-controllers

TRANSCRIPT

Page 1: Javaone 2008: What’s New In Ajax

What’s New in Ajax

Ben Galbraith and Dion AlmaerFounders, Ajaxian.com

TS-6807

1Sunday, May 11, 2008

Page 2: Javaone 2008: What’s New In Ajax

2Sunday, May 11, 2008

Page 3: Javaone 2008: What’s New In Ajax

2Sunday, May 11, 2008

Page 4: Javaone 2008: What’s New In Ajax

JavaFXian It’s “JavaFX”, not “Java”, stupid

2Sunday, May 11, 2008

Page 5: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 6: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 7: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 8: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 9: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 10: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 11: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 12: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 13: Javaone 2008: What’s New In Ajax

3Sunday, May 11, 2008

Page 14: Javaone 2008: What’s New In Ajax

Great User ExperienceGreat Developer Experience

4Sunday, May 11, 2008

Page 15: Javaone 2008: What’s New In Ajax

Great User ExperienceGreat Developer Experience

4Sunday, May 11, 2008

Page 16: Javaone 2008: What’s New In Ajax

Great User ExperienceGreat Developer ExperienceThe Future!

4Sunday, May 11, 2008

Page 17: Javaone 2008: What’s New In Ajax

5Sunday, May 11, 2008

Page 18: Javaone 2008: What’s New In Ajax

The Web didn’t used to be a beautiful place...

5Sunday, May 11, 2008

Page 19: Javaone 2008: What’s New In Ajax

5Sunday, May 11, 2008

Page 20: Javaone 2008: What’s New In Ajax

6Sunday, May 11, 2008

Page 21: Javaone 2008: What’s New In Ajax

7Sunday, May 11, 2008

Page 22: Javaone 2008: What’s New In Ajax

8Sunday, May 11, 2008

Page 23: Javaone 2008: What’s New In Ajax

9Sunday, May 11, 2008

Page 24: Javaone 2008: What’s New In Ajax

9Sunday, May 11, 2008

Page 25: Javaone 2008: What’s New In Ajax

Browser

10Sunday, May 11, 2008

Page 26: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Browser

10Sunday, May 11, 2008

Page 27: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Browser

10Sunday, May 11, 2008

Page 28: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

Browser

10Sunday, May 11, 2008

Page 29: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

Browser

10Sunday, May 11, 2008

Page 30: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

Browser

10Sunday, May 11, 2008

Page 31: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

JavaScript

Browser

10Sunday, May 11, 2008

Page 32: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

JavaScript

Browser

10Sunday, May 11, 2008

Page 33: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

JavaScript Web Browsing

Browser

10Sunday, May 11, 2008

Page 34: Javaone 2008: What’s New In Ajax

Operating System

Event Queue

Mouse Moved

Mouse Pressed

Mouse Released

Key Pressed

Key Released

JavaScript Web Browsing

Potential

Bottleneck

Browser

10Sunday, May 11, 2008

Page 35: Javaone 2008: What’s New In Ajax

User Interface

BackgroundThread

2

Browser

1

11Sunday, May 11, 2008

Page 36: Javaone 2008: What’s New In Ajax

User Interface

BackgroundThread

2X

Browser

1

11Sunday, May 11, 2008

Page 37: Javaone 2008: What’s New In Ajax

User Interface

WorkerPool

Browser

1

WorkerPool

2 3

Message Passing

12Sunday, May 11, 2008

Page 38: Javaone 2008: What’s New In Ajax

Macintosh HD

13Sunday, May 11, 2008

Page 39: Javaone 2008: What’s New In Ajax

Macintosh HD

“You just got another email from your wife!”

13Sunday, May 11, 2008

Page 40: Javaone 2008: What’s New In Ajax

Macintosh HD

“You just got another email from your wife!”

32

13Sunday, May 11, 2008

Page 41: Javaone 2008: What’s New In Ajax

Macintosh HD

“You just got another email from your wife!”

32

13Sunday, May 11, 2008

Page 42: Javaone 2008: What’s New In Ajax

Macintosh HD

“You just got another email from your wife!”

32

13Sunday, May 11, 2008

Page 43: Javaone 2008: What’s New In Ajax

Fluid

MozillaPrism

Adobe AIR

14Sunday, May 11, 2008

Page 44: Javaone 2008: What’s New In Ajax

Fluid

14Sunday, May 11, 2008

Page 45: Javaone 2008: What’s New In Ajax

Fluid

37signals’Campfire

15Sunday, May 11, 2008

Page 46: Javaone 2008: What’s New In Ajax

Fluid

37signals’Campfire

GreaseMonkey /GreaseKit

15Sunday, May 11, 2008

Page 47: Javaone 2008: What’s New In Ajax

Aptana Jaxer

16Sunday, May 11, 2008

Page 48: Javaone 2008: What’s New In Ajax

Aptana Jaxer

16Sunday, May 11, 2008

Page 49: Javaone 2008: What’s New In Ajax

Aptana Jaxer

16Sunday, May 11, 2008

Page 50: Javaone 2008: What’s New In Ajax

Aptana Jaxer

16Sunday, May 11, 2008

Page 51: Javaone 2008: What’s New In Ajax

Aptana Jaxer

Netscape LiveWire1995

16Sunday, May 11, 2008

Page 52: Javaone 2008: What’s New In Ajax

Browser Server

17Sunday, May 11, 2008

Page 53: Javaone 2008: What’s New In Ajax

Browser Server

JavaScript

In the beginning, there was JavaScript in the browser

17Sunday, May 11, 2008

Page 54: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

Then Oak became Java and it entered the browser, too

17Sunday, May 11, 2008

Page 55: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

Applets sucked, but Servlets caught on

17Sunday, May 11, 2008

Page 56: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

Netscape tries to get JavaScript on the server

17Sunday, May 11, 2008

Page 57: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

But, server-side JavaScript never caught on, and client-side JavaScript was mocked

17Sunday, May 11, 2008

Page 58: Javaone 2008: What’s New In Ajax

Browser Server

Java

Ajax comes along and JavaScript gets some respect once again

JavaScript

Ajax!

17Sunday, May 11, 2008

Page 59: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

Ajax!

Then Aptana moves Ajax to the server

JavaScript

Ajax!

17Sunday, May 11, 2008

Page 60: Javaone 2008: What’s New In Ajax

Browser Server

Java

JavaScript

Ajax!

JavaScript

Ajax!

Java/JavaScriptHybrid Monster

Don’t forget GWT, which uses Java and embedded JavaScript to emit client-side JavaScript

17Sunday, May 11, 2008

Page 61: Javaone 2008: What’s New In Ajax

Java

Browser Server

Java

JavaScript

Ajax!

JavaScript

Ajax!

Java/JavaScriptHybrid Monster

And now, finally, after nearly 15 years, we have a decent Java plug-in

17Sunday, May 11, 2008

Page 62: Javaone 2008: What’s New In Ajax

Java

Browser Server

Java

JavaScript

Ajax!

JavaScript

Ajax!

Java/JavaScriptHybrid Monster

And now, finally, after nearly 15 years, we have a decent Java plug-in

17Sunday, May 11, 2008

Page 63: Javaone 2008: What’s New In Ajax

18Sunday, May 11, 2008

Page 64: Javaone 2008: What’s New In Ajax

Amazon EC2Elastic Compute Cloud

18Sunday, May 11, 2008

Page 65: Javaone 2008: What’s New In Ajax

Amazon EC2Elastic Compute Cloud

19Sunday, May 11, 2008

Page 66: Javaone 2008: What’s New In Ajax

Amazon EC2Elastic Compute Cloud

Google App Engine

19Sunday, May 11, 2008

Page 67: Javaone 2008: What’s New In Ajax

Amazon EC2Elastic Compute Cloud

Google App Engine

Aptana Cloud

19Sunday, May 11, 2008

Page 68: Javaone 2008: What’s New In Ajax

Web Services

Your Application

20Sunday, May 11, 2008

Page 69: Javaone 2008: What’s New In Ajax

Web Services

Your Application

20Sunday, May 11, 2008

Page 70: Javaone 2008: What’s New In Ajax

Web Services

Your Application

20Sunday, May 11, 2008

Page 71: Javaone 2008: What’s New In Ajax

Web Services

Your Application

20Sunday, May 11, 2008

Page 72: Javaone 2008: What’s New In Ajax

Web Services

Your Application

20Sunday, May 11, 2008

Page 73: Javaone 2008: What’s New In Ajax

21Sunday, May 11, 2008

Page 74: Javaone 2008: What’s New In Ajax

How to Choose an Ajax Framework

21Sunday, May 11, 2008

Page 75: Javaone 2008: What’s New In Ajax

How to Choose an Ajax Framework

XHR

21Sunday, May 11, 2008

Page 76: Javaone 2008: What’s New In Ajax

How to Choose an Ajax Framework

XHR

22Sunday, May 11, 2008

Page 77: Javaone 2008: What’s New In Ajax

How to Choose an Ajax Framework

22Sunday, May 11, 2008

Page 78: Javaone 2008: What’s New In Ajax

The Old Taxonomy

23Sunday, May 11, 2008

Page 79: Javaone 2008: What’s New In Ajax

The Old Taxonomy

PrototypeLightweight Ajax/JavaScript helpers

23Sunday, May 11, 2008

Page 80: Javaone 2008: What’s New In Ajax

The Old Taxonomy

PrototypeLightweight Ajax/JavaScript helpers

GWTHate JavaScript? No problem, use Java.

23Sunday, May 11, 2008

Page 81: Javaone 2008: What’s New In Ajax

The Old Taxonomy

PrototypeLightweight Ajax/JavaScript helpers

GWTHate JavaScript? No problem, use Java.

jQueryNew, DOM-centric JavaScript helper

23Sunday, May 11, 2008

Page 82: Javaone 2008: What’s New In Ajax

The Old Taxonomy

dojoYour Soup-to-Nuts Ajax/Javascript

Platform

PrototypeLightweight Ajax/JavaScript helpers

GWTHate JavaScript? No problem, use Java.

jQueryNew, DOM-centric JavaScript helper

23Sunday, May 11, 2008

Page 83: Javaone 2008: What’s New In Ajax

The New Taxonomy

24Sunday, May 11, 2008

Page 84: Javaone 2008: What’s New In Ajax

Prototype jQuery Dojo Core

The New Taxonomy

24Sunday, May 11, 2008

Page 85: Javaone 2008: What’s New In Ajax

Prototype jQuery Dojo Core

Plug-in Communityscripteka.com

Plug-in Communityplugins.jquery.com

Plug-in Communitydojox

The New Taxonomy

24Sunday, May 11, 2008

Page 86: Javaone 2008: What’s New In Ajax

Prototype jQuery Dojo Core

Plug-in Communityscripteka.com

Plug-in Communityplugins.jquery.com

Plug-in Communitydojox

Script.aculo.us jQuery UI dijit

The New Taxonomy

24Sunday, May 11, 2008

Page 87: Javaone 2008: What’s New In Ajax

JavaScript Goodness

var SiteMap = Class.create(RuledTable, {

  initialize: function($super, id, expanded) {

    $super(id);

    this.expandedRows = expanded;

  },

  ...

});

25Sunday, May 11, 2008

Page 88: Javaone 2008: What’s New In Ajax

DOM Goodness

$(document).bind("ready", function() {

  $("div").bind("mousewheel", function(event, delta) {

    if (delta < 0) {

      $(this).append("up");

    } else {

      $(this).append("down");

   }

);

});

26Sunday, May 11, 2008

Page 89: Javaone 2008: What’s New In Ajax

CSS and Animations

dojo.query("#nav> .focusable").

    attr("tabIndex", 0).

    style("border", "1px solid transparent").

    anim({

        "borderColor": { start: "yellow",

end: "white" }

    });

27Sunday, May 11, 2008

Page 90: Javaone 2008: What’s New In Ajax

GWT Panels

String html = "<div id='one' "

   + "style='border:3px dotted blue;'>"

   + "</div><div id='two' "

   + "style='border:3px dotted green;'"

   + "></div>";

HTMLPanel panel = new HTMLPanel(html);

panel.setSize("200px", "120px");

panel.addStyleName("demo-panel");

panel.add(new Button("Do Nothing"), "one");

panel.add(new TextBox(), "two");

RootPanel.get("demo").add(panel);

28Sunday, May 11, 2008

Page 91: Javaone 2008: What’s New In Ajax

Sam Stephenson, Creator of Prototype

Key Points:

Prototype was one of the first mainstream Ajax frameworks. Originally a Ruby-on-Rails helper library, it has been widely adopted as a JavaScript/Ajax helper library.

pdocinline documentation

SprocketsComponent packaging

EventsNew event bubbling sub system

29Sunday, May 11, 2008

Page 92: Javaone 2008: What’s New In Ajax

Sam Stephenson, Creator of Prototype

Key Points:

Prototype was one of the first mainstream Ajax frameworks. Originally a Ruby-on-Rails helper library, it has been widely adopted as a JavaScript/Ajax helper library.

pdocinline documentation

SprocketsComponent packaging

EventsNew event bubbling sub system

29Sunday, May 11, 2008

Page 93: Javaone 2008: What’s New In Ajax

John Resig, Creator of jQuery

Key Points:

jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM

jQuery Core 1.2.4Cross browser offset and DOM sizesNew event handlers for speed bump

jQuery Core 1.3New CSS selector engineDOM manipulation simplified

jQuery UI 1.5Ground rewriteLarge number of examples

30Sunday, May 11, 2008

Page 94: Javaone 2008: What’s New In Ajax

John Resig, Creator of jQuery

Key Points:

jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM

jQuery Core 1.2.4Cross browser offset and DOM sizesNew event handlers for speed bump

jQuery Core 1.3New CSS selector engineDOM manipulation simplified

jQuery UI 1.5Ground rewriteLarge number of examples

30Sunday, May 11, 2008

Page 95: Javaone 2008: What’s New In Ajax

Alex Russell, Dojo Co-founder

Key Points:

From its earliest days, Dojo has had the goal of being the JavaScript community’s de facto platform, for both client-side and server-side applications.

Responsive applicationsFor all.

AccessibilityReally, all.

Full GUI toolkitDijit

31Sunday, May 11, 2008

Page 96: Javaone 2008: What’s New In Ajax

Alex Russell, Dojo Co-founder

Key Points:

From its earliest days, Dojo has had the goal of being the JavaScript community’s de facto platform, for both client-side and server-side applications.

Responsive applicationsFor all.

AccessibilityReally, all.

Full GUI toolkitDijit

31Sunday, May 11, 2008

Page 97: Javaone 2008: What’s New In Ajax

Bruce Johnson, Founder of GWT

Key Points:

GWT is the framework for Java developers who don’t wish to learn JavaScript. A sort of Swing/SWT for the Web, it focuses on productivity and performance.

Java 5 SupportGenerics, for loop, etc...

PerformanceWith a simple recompilation

JavaScript IntegrationNew simpler system

Rich componentsNative, and via community (Ext - GWT - Ext)

32Sunday, May 11, 2008

Page 98: Javaone 2008: What’s New In Ajax

Bruce Johnson, Founder of GWT

Key Points:

GWT is the framework for Java developers who don’t wish to learn JavaScript. A sort of Swing/SWT for the Web, it focuses on productivity and performance.

Java 5 SupportGenerics, for loop, etc...

PerformanceWith a simple recompilation

JavaScript IntegrationNew simpler system

Rich componentsNative, and via community (Ext - GWT - Ext)

32Sunday, May 11, 2008

Page 99: Javaone 2008: What’s New In Ajax

XHR

33Sunday, May 11, 2008

Page 100: Javaone 2008: What’s New In Ajax

XHR

33Sunday, May 11, 2008

Page 101: Javaone 2008: What’s New In Ajax

34Sunday, May 11, 2008

Page 102: Javaone 2008: What’s New In Ajax

34Sunday, May 11, 2008

Page 103: Javaone 2008: What’s New In Ajax

35Sunday, May 11, 2008

Page 104: Javaone 2008: What’s New In Ajax

35Sunday, May 11, 2008

Page 105: Javaone 2008: What’s New In Ajax

35Sunday, May 11, 2008

Page 106: Javaone 2008: What’s New In Ajax

35Sunday, May 11, 2008

Page 107: Javaone 2008: What’s New In Ajax

35Sunday, May 11, 2008

Page 108: Javaone 2008: What’s New In Ajax

wiiuse library

35Sunday, May 11, 2008

Page 109: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

35Sunday, May 11, 2008

Page 110: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

35Sunday, May 11, 2008

Page 111: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

wiiusej

35Sunday, May 11, 2008

Page 112: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

wiiusej

35Sunday, May 11, 2008

Page 113: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

wiiusej

35Sunday, May 11, 2008

Page 114: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

wiiusej

35Sunday, May 11, 2008

Page 115: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

wiiusej

WiiApplet

35Sunday, May 11, 2008

Page 116: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

wiiusej

WiiApplet

35Sunday, May 11, 2008

Page 117: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

Browser

wiiusej

WiiApplet

35Sunday, May 11, 2008

Page 118: Javaone 2008: What’s New In Ajax

wiiuse library

JNI

Java Plug-in

WiiTracker

Browser

JavaScript Dart Game

wiiusej

WiiApplet

35Sunday, May 11, 2008

Page 119: Javaone 2008: What’s New In Ajax

36Sunday, May 11, 2008

Page 120: Javaone 2008: What’s New In Ajax

36Sunday, May 11, 2008

Page 121: Javaone 2008: What’s New In Ajax

The New Java Plug-inBeta Shipping Today with Java 1.6 “Update 10”

1 Java plug-in now out-of-processNo more locking up the browser UI on launchApplets can persist across browser sessionsMore control over the Applet’s JVM

2 Improved Applet deploymentJavaScript-based “Deployment Toolkit”Mature JNLP-based Applet metadata

3 A smaller JDKMicro-kernel gives streamlined download option

37Sunday, May 11, 2008

Page 122: Javaone 2008: What’s New In Ajax

The Future?

38Sunday, May 11, 2008

Page 123: Javaone 2008: What’s New In Ajax

The Breakdown of Modern Web Development

39Sunday, May 11, 2008

Page 124: Javaone 2008: What’s New In Ajax

Safari CSS Animations

40Sunday, May 11, 2008

Page 125: Javaone 2008: What’s New In Ajax

Safari CSS Reflections and Masks

41Sunday, May 11, 2008

Page 126: Javaone 2008: What’s New In Ajax

Mozilla’s Monkeys?

42Sunday, May 11, 2008

Page 127: Javaone 2008: What’s New In Ajax

43Sunday, May 11, 2008

Page 128: Javaone 2008: What’s New In Ajax

43Sunday, May 11, 2008

Page 129: Javaone 2008: What’s New In Ajax

Updating the Web...

44Sunday, May 11, 2008

Page 130: Javaone 2008: What’s New In Ajax

HTML 5 Gears

• Standards• Long term• All browsers• No plugin

• Implementation• Battle hardened• A place for innovation• Cross browser• Plugin

Past

Present

Future

A bleeding edge version of HTML 5!

45Sunday, May 11, 2008

Page 131: Javaone 2008: What’s New In Ajax

46Sunday, May 11, 2008

Page 132: Javaone 2008: What’s New In Ajax

What’s New in AjaxDion Almaer and Ben Galbraith

TS-6807

47Sunday, May 11, 2008