SlideShare a Scribd company logo
1 of 132
Download to read offline
What’s New in Ajax

            Ben Galbraith and Dion Almaer
            Founders, Ajaxian.com

            TS-6807




Sunday, May 11, 2008                        1
Sunday, May 11, 2008   2
Sunday, May 11, 2008   2
JavaFXian   It’s “JavaFX”, not “Java”, stupid




Sunday, May 11, 2008                                              2
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Sunday, May 11, 2008   3
Great Developer Experience
                         Great User Experience




Sunday, May 11, 2008                                4
Great User Experience
                       Great Developer Experience




Sunday, May 11, 2008                                4
e!
                         Great User Experience
                                    utu rExperience
                                  eF
                       Great Developer
                               Th




Sunday, May 11, 2008                                  4
Sunday, May 11, 2008   5
The Web didn’t used to be a beautiful place...


Sunday, May 11, 2008                                                    5
Sunday, May 11, 2008   5
Sunday, May 11, 2008   6
Sunday, May 11, 2008   7
Sunday, May 11, 2008   8
Sunday, May 11, 2008   9
Sunday, May 11, 2008   9
Browser



Sunday, May 11, 2008             10
Operating System

                           Event Queue




                            Browser



Sunday, May 11, 2008                     10
Operating System

                           Event Queue




                            Browser



Sunday, May 11, 2008                     10
Mouse Moved

                           Mouse Pressed

                           Mouse Released

                            Key Pressed

        Operating System    Key Released


                           Event Queue




                             Browser



Sunday, May 11, 2008                        10
Mouse Moved

                           Mouse Pressed

                           Mouse Released

                            Key Pressed

        Operating System    Key Released


                           Event Queue




                             Browser



Sunday, May 11, 2008                        10
Mouse Moved

                           Mouse Pressed

                           Mouse Released

                            Key Pressed

        Operating System    Key Released


                           Event Queue




                             Browser



Sunday, May 11, 2008                        10
Mouse Moved

                              Mouse Pressed

                              Mouse Released

                               Key Pressed

        Operating System       Key Released


                              Event Queue




                 JavaScript



                                Browser



Sunday, May 11, 2008                           10
Mouse Moved

                              Mouse Pressed

                              Mouse Released

                               Key Pressed

        Operating System       Key Released


                              Event Queue




                 JavaScript



                                Browser



Sunday, May 11, 2008                           10
Mouse Moved

                              Mouse Pressed

                              Mouse Released

                               Key Pressed

        Operating System       Key Released


                              Event Queue




                 JavaScript                    Web Browsing



                                Browser



Sunday, May 11, 2008                                          10
Mouse Moved

                                      Mouse Pressed

                                      Mouse Released

                                       Key Pressed

        Operating System               Key Released


                                      Event Queue




                                    tial
                               oten neck
                              P le
                                  t
                              Bot


                 JavaScript                            Web Browsing



                                           Browser



Sunday, May 11, 2008                                                  10
1




                                            Browser




                       User Interface




                                        2




                                        Background
                                          Thread



Sunday, May 11, 2008                                  11
1




                                            Browser




                       User Interface




                                        X
                                        2




                                        Background
                                          Thread



Sunday, May 11, 2008                                  11
1




                                                           Browser




                       User Interface                    Message Passing




                                        2                             3




                                            WorkerPool                     WorkerPool




Sunday, May 11, 2008                                                                    12
Macintosh HD




Sunday, May 11, 2008                  13
“You just got another
                       email from your wife!”
                                  Macintosh HD




Sunday, May 11, 2008                             13
“You just got another
                            email from your wife!”
                                       Macintosh HD




                       32




Sunday, May 11, 2008                                  13
“You just got another
                            email from your wife!”
                                       Macintosh HD




                       32




Sunday, May 11, 2008                                  13
“You just got another
                            email from your wife!”
                                       Macintosh HD




                       32




Sunday, May 11, 2008                                  13
Fluid




                        Mozilla
                        Prism




                       Adobe AIR




Sunday, May 11, 2008               14
Fluid




Sunday, May 11, 2008           14
Fluid




                       37signals’
                       Campfire



Sunday, May 11, 2008                15
Fluid




                       GreaseMonkey /
                          GreaseKit




                         37signals’
                         Campfire



Sunday, May 11, 2008                    15
Aptana Jaxer




Sunday, May 11, 2008             16
Aptana Jaxer




Sunday, May 11, 2008             16
Aptana Jaxer




Sunday, May 11, 2008             16
Aptana Jaxer




Sunday, May 11, 2008             16
Aptana Jaxer

                  Netscape LiveWire
                   1995




Sunday, May 11, 2008                  16
Browser   Server




Sunday, May 11, 2008                      17
Browser                                                              Server




                       JavaScript




                                    In the beginning, there was JavaScript in the browser



Sunday, May 11, 2008                                                                                 17
Browser                                                         Server




                       JavaScript




                         Java




                                Then Oak became Java and it entered the browser, too



Sunday, May 11, 2008                                                                            17
Browser                                               Server




                       JavaScript




                                                                              Java




                                    Applets sucked, but Servlets caught on



Sunday, May 11, 2008                                                                  17
Browser                                                    Server




                                                                                  JavaScript




                                                                                    Java




                                 Netscape tries to get JavaScript on the server



Sunday, May 11, 2008                                                                           17
Browser                                                       Server




                                                            JavaScript




                                                                                             Java




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



Sunday, May 11, 2008                                                                                        17
Browser                                                     Server




                                    Aja
                                          x!




                       JavaScript




                                                                                     Java




                           Ajax comes along and JavaScript gets some respect once again



Sunday, May 11, 2008                                                                        17
Browser                                                        Server




                                    Aja                                                            Aja
                                          x!                                                          x!




                       JavaScript                                                     JavaScript




                                                                                         Java




                                               Then Aptana moves Ajax to the server



Sunday, May 11, 2008                                                                                       17
Browser                                                      Server




                                              Aja                                                        Aja
                                                    x!                                                      x!




                                 JavaScript                                                 JavaScript




                              Java/JavaScript                                                  Java
                              Hybrid Monster




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



Sunday, May 11, 2008                                                                                              17
Browser                                                         Server




                                       Aja
                                           x!
                                                                                                   Aja
                                                                                                      x!


                          JavaScript




                                                                                      JavaScript



                       Java/JavaScript
                       Hybrid Monster




                                                                                         Java
                            Java




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



Sunday, May 11, 2008                                                                                       17
Browser                                                         Server




                                       Aja
                                           x!
                                                                                                   Aja
                                                                                                      x!


                          JavaScript




                                                                                      JavaScript



                       Java/JavaScript
                       Hybrid Monster




                                                                                         Java
                            Java




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



Sunday, May 11, 2008                                                                                       17
Sunday, May 11, 2008   18
Amazon EC2
                       Elastic Compute Cloud




Sunday, May 11, 2008                           18
Amazon EC2
                       Elastic Compute Cloud




Sunday, May 11, 2008                           19
Amazon EC2
                       Elastic Compute Cloud




                       Google App Engine




Sunday, May 11, 2008                           19
Amazon EC2
                       Elastic Compute Cloud




                       Google App Engine


                       Aptana Cloud




Sunday, May 11, 2008                           19
Your Application




                                  Web Services

Sunday, May 11, 2008                             20
Your Application




                                  Web Services

Sunday, May 11, 2008                             20
Your Application




                                  Web Services

Sunday, May 11, 2008                             20
Your Application




                                  Web Services

Sunday, May 11, 2008                             20
Your Application




                                  Web Services

Sunday, May 11, 2008                             20
Sunday, May 11, 2008   21
How to Choose an Ajax Framework




Sunday, May 11, 2008                21
How to Choose an Ajax Framework

                                    XHR




Sunday, May 11, 2008                      21
How to Choose an Ajax Framework

                                    XHR




Sunday, May 11, 2008                      22
How to Choose an Ajax Framework




Sunday, May 11, 2008                22
The Old Taxonomy




Sunday, May 11, 2008                      23
The Old Taxonomy




                                    Prototype
                                    Lightweight Ajax/JavaScript helpers




Sunday, May 11, 2008                                                      23
The Old Taxonomy




                                    Prototype
                                    Lightweight Ajax/JavaScript helpers




                                    GWT
                                    Hate JavaScript? No problem, use Java.




Sunday, May 11, 2008                                                         23
The Old Taxonomy




                                    Prototype
                                    Lightweight Ajax/JavaScript helpers




                                    GWT
                                    Hate JavaScript? No problem, use Java.




                                    jQuery
                                    New, DOM-centric JavaScript helper




Sunday, May 11, 2008                                                         23
The Old Taxonomy




                                                                Prototype




            dojo
                                                                Lightweight Ajax/JavaScript helpers




                                                                GWT
                                                                Hate JavaScript? No problem, use Java.



               Your Soup-to-Nuts Ajax/Javascript
                           Platform


                                                                jQuery
                                                                New, DOM-centric JavaScript helper




Sunday, May 11, 2008                                                                                     23
The New Taxonomy




Sunday, May 11, 2008                      24
The New Taxonomy




                       Prototype        jQuery        Dojo Core



Sunday, May 11, 2008                                              24
The New Taxonomy




               Plug-in Community      Plug-in Community    Plug-in Community
                  scripteka.com       plugins.jquery.com          dojox




                       Prototype          jQuery             Dojo Core



Sunday, May 11, 2008                                                           24
The New Taxonomy




                Script.aculo.us          jQuery UI               dijit




               Plug-in Community      Plug-in Community    Plug-in Community
                  scripteka.com       plugins.jquery.com          dojox




                       Prototype          jQuery             Dojo Core



Sunday, May 11, 2008                                                           24
JavaScript Goodness



          var SiteMap = Class.create(RuledTable, {
            initialize: function($super, id, expanded) {
              $super(id);
              this.expandedRows = expanded;
            },


            ...


          });



Sunday, May 11, 2008                                       25
DOM Goodness


          $(document).bind(quot;readyquot;, function() {


            $(quot;divquot;).bind(quot;mousewheelquot;, function(event, delta) {
              if (delta < 0) {
                $(this).append(quot;upquot;);
              } else {
                $(this).append(quot;downquot;);
                       }
               );


          });


Sunday, May 11, 2008                                               26
CSS and Animations



          dojo.query(quot;#nav> .focusablequot;).
              attr(quot;tabIndexquot;, 0).
              style(quot;borderquot;, quot;1px solid transparentquot;).
              anim({
                  quot;borderColorquot;: { start: quot;yellowquot;,
                                     end: quot;whitequot; }
              });




Sunday, May 11, 2008                                      27
GWT Panels


          String html = quot;<div id='one' quot;
             + quot;style='border:3px dotted blue;'>quot;
             + quot;</div><div id='two' quot;
             + quot;style='border:3px dotted green;'quot;
             + quot;></div>quot;;


          HTMLPanel panel = new HTMLPanel(html);
          panel.setSize(quot;200pxquot;, quot;120pxquot;);
          panel.addStyleName(quot;demo-panelquot;);
          panel.add(new Button(quot;Do Nothingquot;), quot;onequot;);
          panel.add(new TextBox(), quot;twoquot;);
          RootPanel.get(quot;demoquot;).add(panel);


Sunday, May 11, 2008                                    28
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.

                                                              Key Points:


                                                               pdoc
                                                                 inline documentation




                                                               Sprockets
                                                                Component packaging



                                                               Events
                                                                New event bubbling sub system




                       Sam Stephenson, Creator of Prototype




Sunday, May 11, 2008                                                                               29
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.

                                                              Key Points:


                                                               pdoc
                                                                 inline documentation




                                                               Sprockets
                                                                Component packaging



                                                               Events
                                                                New event bubbling sub system




                       Sam Stephenson, Creator of Prototype




Sunday, May 11, 2008                                                                               29
jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM


                                                         Key Points:


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




                                                           jQuery Core 1.3
                                                               New CSS selector engine
                                                               DOM manipulation simplified



                                                           jQuery UI 1.5
                                                             Ground rewrite
                                                             Large number of examples



                       John Resig, Creator of jQuery




Sunday, May 11, 2008                                                                                  30
jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM


                                                         Key Points:


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




                                                           jQuery Core 1.3
                                                               New CSS selector engine
                                                               DOM manipulation simplified



                                                           jQuery UI 1.5
                                                             Ground rewrite
                                                             Large number of examples



                       John Resig, Creator of jQuery




Sunday, May 11, 2008                                                                                  30
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.

                                                          Key Points:

                                                           Responsive applications
                                                             For all.


                                                           Accessibility
                                                             Really, all.


                                                           Full GUI toolkit
                                                             Dijit


                       Alex Russell, Dojo Co-founder




Sunday, May 11, 2008                                                                             31
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.

                                                          Key Points:

                                                           Responsive applications
                                                             For all.


                                                           Accessibility
                                                             Really, all.


                                                           Full GUI toolkit
                                                             Dijit


                       Alex Russell, Dojo Co-founder




Sunday, May 11, 2008                                                                             31
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.

                                                          Key Points:

                                                          Java 5 Support
                                                            Generics, for loop, etc...


                                                          Performance
                                                            With a simple recompilation


                                                          JavaScript Integration
                                                            New simpler system



                       Bruce Johnson, Founder of GWT      Rich components
                                                            Native, and via community (Ext - GWT - Ext)




Sunday, May 11, 2008                                                                                      32
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.

                                                          Key Points:

                                                          Java 5 Support
                                                            Generics, for loop, etc...


                                                          Performance
                                                            With a simple recompilation


                                                          JavaScript Integration
                                                            New simpler system



                       Bruce Johnson, Founder of GWT      Rich components
                                                            Native, and via community (Ext - GWT - Ext)




Sunday, May 11, 2008                                                                                      32
XHR




Sunday, May 11, 2008         33
XHR




Sunday, May 11, 2008         33
Sunday, May 11, 2008   34
Sunday, May 11, 2008   34
Sunday, May 11, 2008   35
Sunday, May 11, 2008   35
Sunday, May 11, 2008   35
Sunday, May 11, 2008   35
Sunday, May 11, 2008   35
wiiuse library




Sunday, May 11, 2008                    35
JNI




                       wiiuse library




Sunday, May 11, 2008                    35
Java Plug-in




                                       JNI




                       wiiuse library




Sunday, May 11, 2008                         35
Java Plug-in




                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Java Plug-in




                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Java Plug-in




                             WiiTracker



                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Java Plug-in




                             WiiTracker



                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Java Plug-in


                              WiiApplet



                             WiiTracker



                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Java Plug-in


                              WiiApplet



                             WiiTracker



                               wiiusej




                                         JNI




                       wiiuse library




Sunday, May 11, 2008                           35
Browser    Java Plug-in


                                        WiiApplet



                                       WiiTracker



                                         wiiusej




                                                   JNI




                                 wiiuse library




Sunday, May 11, 2008                                     35
Browser             Java Plug-in


                                                 WiiApplet

                        JavaScript Dart
                            Game
                                                WiiTracker



                                                  wiiusej




                                                            JNI




                                          wiiuse library




Sunday, May 11, 2008                                              35
Sunday, May 11, 2008   36
Sunday, May 11, 2008   36
The New Java Plug-in
                         Beta Shipping Today with Java 1.6 “Update 10”



                  1    Java plug-in now out-of-process
                           No more locking up the browser UI on launch
                           Applets can persist across browser sessions
                           More control over the Applet’s JVM

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


                  3    A smaller JDK
                           Micro-kernel gives streamlined download option




Sunday, May 11, 2008                                                        37
The Future?




Sunday, May 11, 2008      38
The Breakdown of Modern Web Development




Sunday, May 11, 2008                                        39
Safari CSS Animations




Sunday, May 11, 2008                           40
Safari CSS Reflections and Masks




Sunday, May 11, 2008                                      41
Mozilla’s Monkeys?




Sunday, May 11, 2008                        42
Sunday, May 11, 2008   43
Sunday, May 11, 2008   43
Updating the Web...




Sunday, May 11, 2008                         44
Future


                                Present
                                                          Ab
                                                              leed
                                                             edg ing
                                                           vers e
                                                        of H ion
                                 Past                        TML
                                                                 5!

        HTML 5                               Gears


               • Standards                • Implementation
               • Long term                • Battle hardened
                                          • A place for innovation
               • All browsers             • Cross browser
               • No plugin                • Plugin

Sunday, May 11, 2008                                                   45
Sunday, May 11, 2008   46
What’s New in Ajax
           Dion Almaer and Ben Galbraith

           TS-6807




Sunday, May 11, 2008                       47

More Related Content

More from dion

The Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfThe Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfdion
 
Google Developer Day: State of Ajax
Google Developer Day: State of AjaxGoogle Developer Day: State of Ajax
Google Developer Day: State of Ajaxdion
 
Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008dion
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyonddion
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munichdion
 
Web 2.0 Expo Ria Offline Desktop
Web 2.0 Expo Ria Offline DesktopWeb 2.0 Expo Ria Offline Desktop
Web 2.0 Expo Ria Offline Desktopdion
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gearsdion
 

More from dion (7)

The Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConfThe Mobile Web @ 2010 JSConf
The Mobile Web @ 2010 JSConf
 
Google Developer Day: State of Ajax
Google Developer Day: State of AjaxGoogle Developer Day: State of Ajax
Google Developer Day: State of Ajax
 
Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyond
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
Web 2.0 Expo Ria Offline Desktop
Web 2.0 Expo Ria Offline DesktopWeb 2.0 Expo Ria Offline Desktop
Web 2.0 Expo Ria Offline Desktop
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gears
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Javaone 2008: What’s New In Ajax

  • 1. What’s New in Ajax Ben Galbraith and Dion Almaer Founders, Ajaxian.com TS-6807 Sunday, May 11, 2008 1
  • 4. JavaFXian It’s “JavaFX”, not “Java”, stupid Sunday, May 11, 2008 2
  • 14. Great Developer Experience Great User Experience Sunday, May 11, 2008 4
  • 15. Great User Experience Great Developer Experience Sunday, May 11, 2008 4
  • 16. e! Great User Experience utu rExperience eF Great Developer Th Sunday, May 11, 2008 4
  • 18. The Web didn’t used to be a beautiful place... Sunday, May 11, 2008 5
  • 26. Operating System Event Queue Browser Sunday, May 11, 2008 10
  • 27. Operating System Event Queue Browser Sunday, May 11, 2008 10
  • 28. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue Browser Sunday, May 11, 2008 10
  • 29. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue Browser Sunday, May 11, 2008 10
  • 30. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue Browser Sunday, May 11, 2008 10
  • 31. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue JavaScript Browser Sunday, May 11, 2008 10
  • 32. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue JavaScript Browser Sunday, May 11, 2008 10
  • 33. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue JavaScript Web Browsing Browser Sunday, May 11, 2008 10
  • 34. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue tial oten neck P le t Bot JavaScript Web Browsing Browser Sunday, May 11, 2008 10
  • 35. 1 Browser User Interface 2 Background Thread Sunday, May 11, 2008 11
  • 36. 1 Browser User Interface X 2 Background Thread Sunday, May 11, 2008 11
  • 37. 1 Browser User Interface Message Passing 2 3 WorkerPool WorkerPool Sunday, May 11, 2008 12
  • 39. “You just got another email from your wife!” Macintosh HD Sunday, May 11, 2008 13
  • 40. “You just got another email from your wife!” Macintosh HD 32 Sunday, May 11, 2008 13
  • 41. “You just got another email from your wife!” Macintosh HD 32 Sunday, May 11, 2008 13
  • 42. “You just got another email from your wife!” Macintosh HD 32 Sunday, May 11, 2008 13
  • 43. Fluid Mozilla Prism Adobe AIR Sunday, May 11, 2008 14
  • 45. Fluid 37signals’ Campfire Sunday, May 11, 2008 15
  • 46. Fluid GreaseMonkey / GreaseKit 37signals’ Campfire Sunday, May 11, 2008 15
  • 51. Aptana Jaxer Netscape LiveWire 1995 Sunday, May 11, 2008 16
  • 52. Browser Server Sunday, May 11, 2008 17
  • 53. Browser Server JavaScript In the beginning, there was JavaScript in the browser Sunday, May 11, 2008 17
  • 54. Browser Server JavaScript Java Then Oak became Java and it entered the browser, too Sunday, May 11, 2008 17
  • 55. Browser Server JavaScript Java Applets sucked, but Servlets caught on Sunday, May 11, 2008 17
  • 56. Browser Server JavaScript Java Netscape tries to get JavaScript on the server Sunday, May 11, 2008 17
  • 57. Browser Server JavaScript Java But, server-side JavaScript never caught on, and client-side JavaScript was mocked Sunday, May 11, 2008 17
  • 58. Browser Server Aja x! JavaScript Java Ajax comes along and JavaScript gets some respect once again Sunday, May 11, 2008 17
  • 59. Browser Server Aja Aja x! x! JavaScript JavaScript Java Then Aptana moves Ajax to the server Sunday, May 11, 2008 17
  • 60. Browser Server Aja Aja x! x! JavaScript JavaScript Java/JavaScript Java Hybrid Monster Don’t forget GWT, which uses Java and embedded JavaScript to emit client-side JavaScript Sunday, May 11, 2008 17
  • 61. Browser Server Aja x! Aja x! JavaScript JavaScript Java/JavaScript Hybrid Monster Java Java And now, finally, after nearly 15 years, we have a decent Java plug-in Sunday, May 11, 2008 17
  • 62. Browser Server Aja x! Aja x! JavaScript JavaScript Java/JavaScript Hybrid Monster Java Java And now, finally, after nearly 15 years, we have a decent Java plug-in Sunday, May 11, 2008 17
  • 63. Sunday, May 11, 2008 18
  • 64. Amazon EC2 Elastic Compute Cloud Sunday, May 11, 2008 18
  • 65. Amazon EC2 Elastic Compute Cloud Sunday, May 11, 2008 19
  • 66. Amazon EC2 Elastic Compute Cloud Google App Engine Sunday, May 11, 2008 19
  • 67. Amazon EC2 Elastic Compute Cloud Google App Engine Aptana Cloud Sunday, May 11, 2008 19
  • 68. Your Application Web Services Sunday, May 11, 2008 20
  • 69. Your Application Web Services Sunday, May 11, 2008 20
  • 70. Your Application Web Services Sunday, May 11, 2008 20
  • 71. Your Application Web Services Sunday, May 11, 2008 20
  • 72. Your Application Web Services Sunday, May 11, 2008 20
  • 73. Sunday, May 11, 2008 21
  • 74. How to Choose an Ajax Framework Sunday, May 11, 2008 21
  • 75. How to Choose an Ajax Framework XHR Sunday, May 11, 2008 21
  • 76. How to Choose an Ajax Framework XHR Sunday, May 11, 2008 22
  • 77. How to Choose an Ajax Framework Sunday, May 11, 2008 22
  • 78. The Old Taxonomy Sunday, May 11, 2008 23
  • 79. The Old Taxonomy Prototype Lightweight Ajax/JavaScript helpers Sunday, May 11, 2008 23
  • 80. The Old Taxonomy Prototype Lightweight Ajax/JavaScript helpers GWT Hate JavaScript? No problem, use Java. Sunday, May 11, 2008 23
  • 81. The Old Taxonomy Prototype Lightweight Ajax/JavaScript helpers GWT Hate JavaScript? No problem, use Java. jQuery New, DOM-centric JavaScript helper Sunday, May 11, 2008 23
  • 82. The Old Taxonomy Prototype dojo Lightweight Ajax/JavaScript helpers GWT Hate JavaScript? No problem, use Java. Your Soup-to-Nuts Ajax/Javascript Platform jQuery New, DOM-centric JavaScript helper Sunday, May 11, 2008 23
  • 83. The New Taxonomy Sunday, May 11, 2008 24
  • 84. The New Taxonomy Prototype jQuery Dojo Core Sunday, May 11, 2008 24
  • 85. The New Taxonomy Plug-in Community Plug-in Community Plug-in Community scripteka.com plugins.jquery.com dojox Prototype jQuery Dojo Core Sunday, May 11, 2008 24
  • 86. The New Taxonomy Script.aculo.us jQuery UI dijit Plug-in Community Plug-in Community Plug-in Community scripteka.com plugins.jquery.com dojox Prototype jQuery Dojo Core Sunday, May 11, 2008 24
  • 87. JavaScript Goodness var SiteMap = Class.create(RuledTable, {   initialize: function($super, id, expanded) {     $super(id);     this.expandedRows = expanded;   },   ... }); Sunday, May 11, 2008 25
  • 88. DOM Goodness $(document).bind(quot;readyquot;, function() {   $(quot;divquot;).bind(quot;mousewheelquot;, function(event, delta) {     if (delta < 0) {       $(this).append(quot;upquot;);     } else {       $(this).append(quot;downquot;);    } ); }); Sunday, May 11, 2008 26
  • 89. CSS and Animations dojo.query(quot;#nav> .focusablequot;).     attr(quot;tabIndexquot;, 0).     style(quot;borderquot;, quot;1px solid transparentquot;).     anim({         quot;borderColorquot;: { start: quot;yellowquot;, end: quot;whitequot; }     }); Sunday, May 11, 2008 27
  • 90. GWT Panels String html = quot;<div id='one' quot;    + quot;style='border:3px dotted blue;'>quot;    + quot;</div><div id='two' quot;    + quot;style='border:3px dotted green;'quot;    + quot;></div>quot;; HTMLPanel panel = new HTMLPanel(html); panel.setSize(quot;200pxquot;, quot;120pxquot;); panel.addStyleName(quot;demo-panelquot;); panel.add(new Button(quot;Do Nothingquot;), quot;onequot;); panel.add(new TextBox(), quot;twoquot;); RootPanel.get(quot;demoquot;).add(panel); Sunday, May 11, 2008 28
  • 91. 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. Key Points: pdoc inline documentation Sprockets Component packaging Events New event bubbling sub system Sam Stephenson, Creator of Prototype Sunday, May 11, 2008 29
  • 92. 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. Key Points: pdoc inline documentation Sprockets Component packaging Events New event bubbling sub system Sam Stephenson, Creator of Prototype Sunday, May 11, 2008 29
  • 93. jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM Key Points: jQuery Core 1.2.4 Cross browser offset and DOM sizes New event handlers for speed bump jQuery Core 1.3 New CSS selector engine DOM manipulation simplified jQuery UI 1.5 Ground rewrite Large number of examples John Resig, Creator of jQuery Sunday, May 11, 2008 30
  • 94. jQuery pioneered the “CSS selector first” technique of applying behaviour to the DOM Key Points: jQuery Core 1.2.4 Cross browser offset and DOM sizes New event handlers for speed bump jQuery Core 1.3 New CSS selector engine DOM manipulation simplified jQuery UI 1.5 Ground rewrite Large number of examples John Resig, Creator of jQuery Sunday, May 11, 2008 30
  • 95. 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. Key Points: Responsive applications For all. Accessibility Really, all. Full GUI toolkit Dijit Alex Russell, Dojo Co-founder Sunday, May 11, 2008 31
  • 96. 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. Key Points: Responsive applications For all. Accessibility Really, all. Full GUI toolkit Dijit Alex Russell, Dojo Co-founder Sunday, May 11, 2008 31
  • 97. 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. Key Points: Java 5 Support Generics, for loop, etc... Performance With a simple recompilation JavaScript Integration New simpler system Bruce Johnson, Founder of GWT Rich components Native, and via community (Ext - GWT - Ext) Sunday, May 11, 2008 32
  • 98. 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. Key Points: Java 5 Support Generics, for loop, etc... Performance With a simple recompilation JavaScript Integration New simpler system Bruce Johnson, Founder of GWT Rich components Native, and via community (Ext - GWT - Ext) Sunday, May 11, 2008 32
  • 101. Sunday, May 11, 2008 34
  • 102. Sunday, May 11, 2008 34
  • 103. Sunday, May 11, 2008 35
  • 104. Sunday, May 11, 2008 35
  • 105. Sunday, May 11, 2008 35
  • 106. Sunday, May 11, 2008 35
  • 107. Sunday, May 11, 2008 35
  • 109. JNI wiiuse library Sunday, May 11, 2008 35
  • 110. Java Plug-in JNI wiiuse library Sunday, May 11, 2008 35
  • 111. Java Plug-in wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 112. Java Plug-in wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 113. Java Plug-in WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 114. Java Plug-in WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 115. Java Plug-in WiiApplet WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 116. Java Plug-in WiiApplet WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 117. Browser Java Plug-in WiiApplet WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 118. Browser Java Plug-in WiiApplet JavaScript Dart Game WiiTracker wiiusej JNI wiiuse library Sunday, May 11, 2008 35
  • 119. Sunday, May 11, 2008 36
  • 120. Sunday, May 11, 2008 36
  • 121. The New Java Plug-in Beta Shipping Today with Java 1.6 “Update 10” 1 Java plug-in now out-of-process No more locking up the browser UI on launch Applets can persist across browser sessions More control over the Applet’s JVM 2 Improved Applet deployment JavaScript-based “Deployment Toolkit” Mature JNLP-based Applet metadata 3 A smaller JDK Micro-kernel gives streamlined download option Sunday, May 11, 2008 37
  • 122. The Future? Sunday, May 11, 2008 38
  • 123. The Breakdown of Modern Web Development Sunday, May 11, 2008 39
  • 124. Safari CSS Animations Sunday, May 11, 2008 40
  • 125. Safari CSS Reflections and Masks Sunday, May 11, 2008 41
  • 127. Sunday, May 11, 2008 43
  • 128. Sunday, May 11, 2008 43
  • 129. Updating the Web... Sunday, May 11, 2008 44
  • 130. Future Present Ab leed edg ing vers e of H ion Past TML 5! HTML 5 Gears • Standards • Implementation • Long term • Battle hardened • A place for innovation • All browsers • Cross browser • No plugin • Plugin Sunday, May 11, 2008 45
  • 131. Sunday, May 11, 2008 46
  • 132. What’s New in Ajax Dion Almaer and Ben Galbraith TS-6807 Sunday, May 11, 2008 47