SlideShare a Scribd company logo
1 of 29
Download to read offline
jQuery Conference 2012 keynote
jQuery Conference 2012
     San Francisco
        Dave Methvin
 President, jQuery Foundation
 Lead Developer, jQuery Core
Just a few things going on…
• jQuery Foundation
  – Gives us a way to organize support for the jQuery
    project and community efforts
     • Software development
     • Documentation and training
     • Conferences
  – Tomorrow morning's keynote by Richard Worth
• jQuery Core, UI, Mobile
jQuery Core Timeline
•   jQuery 1.0: January 2006
•   jQuery 1.1: January 2007
•   jQuery 1.2: September 2007
•   jQuery 1.3: January 2009
•   jQuery 1.4: January 2010
•   jQuery 1.5: January 2011
•   jQuery 1.6: May 2011
•   jQuery 1.7: November 2011
jQuery Core Timeline
•   jQuery 1.0: January 2006
•   jQuery 1.1: January 2007
•   jQuery 1.2: September 2007
•   jQuery 1.3: January 2009
•   jQuery 1.4: January 2010
•   jQuery 1.5: January 2011
•   jQuery 1.6: May 2011
•   jQuery 1.7: November 2011
jQuery 1.8: July 2012
•   Only major release this year
•   Fix bugs, make things faster (of course!)
•   Add some nice things (CSS vendor prefixes)
•   Dump unneeded code (Safari 2 for example)
•   Deprecate "trip hazards"
    – E.g. $.browser
• Set the stage for future work
jQuery 1.8: Modularity
• New grunt build system (yay @cowboy!)
• Intended for advanced users in 1.8
  – You must understand your project dependencies
• Exclude parts you don't need
  – ajax, css, dimensions, effects, offset, deprecated
• Simple option in the jQuery build
  – Documented in the README file
  – Blog post to come
jQuery 1.8: Modularity
• Theoretical example: Small mobile app
  – Uses classes for CSS styling and animations
  – No third-party plugin dependencies
  – Only needs JSONP, using jaubourg's jsonp.js
  – jQuery 1.7.2: 32.8KB min-gz (full jQuery)
  – jQuery 1.8: ~24KB min-gz (including jsonp.js!)
THIS is why it can't be simple
jQuery 1.8: Closure Compiler
• Experimental branch, not yet available
• Supports CC's ADVANCED_OPTIMIZATIONS
  – Renames variables and property names
  – Eliminates dead (uncalled) functions
  – Inlines function calls
• Intended for really advanced users
  – obj.name vs. obj["name"] confuses optimizer
  – Code annotations act as optimizer hints
  – All your code needs to be CC AO safe
  – Difficult to debug
The Future of jQuery
The Future of jQuery
jQuery 1.9: Early 2013
• Continued API cleanup
  – Better modularity and speed, smaller size
  – Remove some deprecated APIs
• Compatibility plugin
  – Includes most of the APIs we remove
  – For the times you just want to "make it work"
• Support and unit tests for all major market-
  share browsers (including IE7/8)
• IE6 serious-regressions-only policy
This is the exciting part
jQuery 2.0: Early 2013
• Same API as jQuery 1.9
• No major feature additions
jQuery 2.0: Early 2013
• Same API as jQuery 1.9
• No major feature additions
jQuery 2.0: Early 2013


NO SUPPORT
FOR IE6, IE7,
NOT EVEN IE8
Why This Approach?
• OldIE workarounds permeate jQuery
  – Refactoring to a plugin isn't practical
• We have a solution for oldIE – version 1.9
  – Remember, it's the same API
Shunning oldIE: Advantages
• Jettison all the oldIE hacks
   –   "Attroperties"
   –   DOM-vs-JavaScript memory leaks
   –   innerHTML serialization quirks
   –   HTML5 shimming
   –   Spontaneous tbody in empty tables
   –   Opacity via filters, causes grainy text
   –   Incorrect case sensitivity on attributes
   –   Non-W3C attachEvent model
   –   Can't change type property of inputs
   –   Link href attribute returns absolute URL
   –   No bubbling on change and submit events
   –   Unreliable offsetHeight on table elements
   –   Thrᵒ exceptions on invalid CSS values
              ws
   –   Appended checkboxes lose their chec√s
   –   Broken try/finally – there's G0T to be a catch
   –   Host objects, please NOT hosT objects
   –   It comes it cOmes cannot fi​ght it com̡e̶s, ̕
   –   ̵Un̨ho͞ly code destro҉ying all enli̍̈́̂̈́ghtenment,
   –    JScript lea͠ki̧nᵒ fr̶ǫm ̡yo​ r eye͢s̸ ̛l̕ik͏e liq​uid pain,
                           g        ͟u
   –    ALL IS Lo ̩͇̗̪̏̈́T ALL I​S LOST
   –    MY CODE MY CODE ᵒh noNO NOO o
Simplify, Simplify, Simplify
• Removing oldIE improves the code base
  – Faster
     • Fewer feature detects required at load time
     • Fewer tests needed at run time
  – Smaller
     • Especially when combined with modularity!
  – Revisit design decisions warped by oldIE
     • E.g., attach data directly to DOM elements
Not Just Mobile – Modern
• Yes, oldIE is just a "desktop" concern
• But "mobile" is not just iOS/Webkit
  – Poster boy: Microsoft Surface Tablet
     • Not just one screen size; not Webkit
     • Mouse, touch, stylus, maybe even Kinect?
  – Responsive design to the rescue?
• jQuery 2.0 will support modern browsers
  – Not just a Webkit subset of browsers
  – We don't want to break the web
"IE8 can't use my site?"
Breaking the Web?
• jQuery Core team will support two versions
  – Version 1.9 works with IE 6/7/8
  – Version 2.0 does not

  "But Dave, my web site still
  needs to support IE 6/7/8 but I
  want to use jQuery 2.0!"
jQuery Conference 2012 keynote
jQuery 2.0: "Tears of Joy" Policy
• Include jQuery 1.9 only for oldIE:

     !--[if lt IE 9]>
         <script src="jquery-1.9.0.js"></script>
     <![endif]-->
     <!--[if gte IE 9]><!-->
       <script src="jquery-2.0.0.js"></script>
     <!--<![endif]-->
jQuery Core Future Growth
jQuery Core Future Growth
• Improve browser features or solve issues that
  exist everywhere (e.g. CSS vendor prefixes)
• Beyond that, emphasis on plugins
  – Don't make everyone pay for platform-specific
    features and needs
• You can still use a CDN jQuery but compress
  all your plugins and site code!
Why We Plugin: Touch Events
• Two non-standard implementations
  – Webkit touch events
  – Microsoft MSPointer
  – No sign of a W3C standard (Apple patents)
• Can we normalize like we did with oldIE?
  – Maybe … but to which implementation?
  – Webkit: de facto; MSPointer: flexible, unproven
• Should we include this in core?
  – Way too early for that. Plugin for now!
jQuery Conference 2012 keynote

More Related Content

What's hot

Real World Web components
Real World Web componentsReal World Web components
Real World Web componentsJarrod Overson
 
jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013dmethvin
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performancemennovanslooten
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
 
JsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery TemplatesJsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery TemplatesBorisMoore
 
JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceDmitry Sheiko
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneDeepu S Nath
 
jQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great MergerjQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great Mergerscottgonzalez
 
HTTP 2.0 - Web Unleashed 2015
HTTP 2.0 - Web Unleashed 2015HTTP 2.0 - Web Unleashed 2015
HTTP 2.0 - Web Unleashed 2015dmethvin
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkBorisMoore
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsNode PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsMike McNeil
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Matt Raible
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldKevin Ball
 
Angular from a Different Angle
Angular from a Different AngleAngular from a Different Angle
Angular from a Different AngleJeremy Likness
 

What's hot (20)

Real World Web components
Real World Web componentsReal World Web components
Real World Web components
 
jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performance
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
JsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery TemplatesJsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery Templates
 
JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right Choice
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
 
jQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great MergerjQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great Merger
 
HTTP 2.0 - Web Unleashed 2015
HTTP 2.0 - Web Unleashed 2015HTTP 2.0 - Web Unleashed 2015
HTTP 2.0 - Web Unleashed 2015
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
 
AngularJS is awesome
AngularJS is awesomeAngularJS is awesome
AngularJS is awesome
 
Harness jQuery Templates and Data Link
Harness jQuery Templates and Data LinkHarness jQuery Templates and Data Link
Harness jQuery Templates and Data Link
 
Webpack
Webpack Webpack
Webpack
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsNode PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework World
 
Angular from a Different Angle
Angular from a Different AngleAngular from a Different Angle
Angular from a Different Angle
 
SxSW 2015
SxSW 2015SxSW 2015
SxSW 2015
 

Viewers also liked

Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkSt. Petersburg College
 
Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllMarc Grabanski
 
jQuery Foundation Keynote
jQuery Foundation KeynotejQuery Foundation Keynote
jQuery Foundation KeynoteRichard Worth
 
Building jQuery Mobile Web Apps
Building jQuery Mobile Web AppsBuilding jQuery Mobile Web Apps
Building jQuery Mobile Web AppsOperation Mobile
 
CSS/SVG Matrix Transforms
CSS/SVG Matrix TransformsCSS/SVG Matrix Transforms
CSS/SVG Matrix TransformsMarc Grabanski
 
Pushing Python: Building a High Throughput, Low Latency System
Pushing Python: Building a High Throughput, Low Latency SystemPushing Python: Building a High Throughput, Low Latency System
Pushing Python: Building a High Throughput, Low Latency SystemKevin Ballard
 
Airbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitAirbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitnaseemh
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5Todd Anderson
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 
gevent at TellApart
gevent at TellApartgevent at TellApart
gevent at TellApartTellApart
 
Image Optimization for the Web at php|works
Image Optimization for the Web at php|worksImage Optimization for the Web at php|works
Image Optimization for the Web at php|worksStoyan Stefanov
 
End of year review/preview
End of year review/previewEnd of year review/preview
End of year review/previewNigelG
 
The World of Social Objects
The World of Social ObjectsThe World of Social Objects
The World of Social ObjectsJESS3
 
jQuery Mobile Jump Start
jQuery Mobile Jump StartjQuery Mobile Jump Start
jQuery Mobile Jump StartTroy Miles
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and RenderingStoyan Stefanov
 
JavaScript is everywhere
JavaScript is everywhereJavaScript is everywhere
JavaScript is everywhereStoyan Stefanov
 

Viewers also liked (20)

Impact of Open Source
Impact of Open SourceImpact of Open Source
Impact of Open Source
 
Unit testing
Unit testingUnit testing
Unit testing
 
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile FrameworkBuilding a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
Building a Simple Mobile-optimized Web App Using the jQuery Mobile Framework
 
Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for All
 
jQuery Foundation Keynote
jQuery Foundation KeynotejQuery Foundation Keynote
jQuery Foundation Keynote
 
Building jQuery Mobile Web Apps
Building jQuery Mobile Web AppsBuilding jQuery Mobile Web Apps
Building jQuery Mobile Web Apps
 
CSS/SVG Matrix Transforms
CSS/SVG Matrix TransformsCSS/SVG Matrix Transforms
CSS/SVG Matrix Transforms
 
Pushing Python: Building a High Throughput, Low Latency System
Pushing Python: Building a High Throughput, Low Latency SystemPushing Python: Building a High Throughput, Low Latency System
Pushing Python: Building a High Throughput, Low Latency System
 
Airbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitAirbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkit
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
gevent at TellApart
gevent at TellApartgevent at TellApart
gevent at TellApart
 
Image Optimization for the Web at php|works
Image Optimization for the Web at php|worksImage Optimization for the Web at php|works
Image Optimization for the Web at php|works
 
End of year review/preview
End of year review/previewEnd of year review/preview
End of year review/preview
 
Frameworks
FrameworksFrameworks
Frameworks
 
The World of Social Objects
The World of Social ObjectsThe World of Social Objects
The World of Social Objects
 
The jQuery Divide
The jQuery DivideThe jQuery Divide
The jQuery Divide
 
jQuery Mobile Jump Start
jQuery Mobile Jump StartjQuery Mobile Jump Start
jQuery Mobile Jump Start
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
 
JavaScript is everywhere
JavaScript is everywhereJavaScript is everywhere
JavaScript is everywhere
 

Similar to jQuery Conference 2012 keynote

jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013dmethvin
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Html5 with SharePoint 2010
Html5 with SharePoint 2010Html5 with SharePoint 2010
Html5 with SharePoint 2010Hemant Joshi
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesMark Roden
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkitPaul Jensen
 
jQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and FuturejQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and FutureRichard Worth
 
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Codecamp Romania
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MITjeresig
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPagesTeamstudio
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahiericjamesblackburn
 
Developing for the mobile web
Developing for the mobile webDeveloping for the mobile web
Developing for the mobile webjoeysim
 
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTMLHow to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTMLreybango
 
KharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themKharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themVlad Fedosov
 
One code Web, iOS, Android
One code Web, iOS, AndroidOne code Web, iOS, Android
One code Web, iOS, AndroidArtem Marchenko
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesreebalazs
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsAviran Cohen
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveSalem Ghoweri
 

Similar to jQuery Conference 2012 keynote (20)

jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013jQueryTO: State of jQuery March 2013
jQueryTO: State of jQuery March 2013
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Html5 with SharePoint 2010
Html5 with SharePoint 2010Html5 with SharePoint 2010
Html5 with SharePoint 2010
 
The Java alternative to Javascript
The Java alternative to JavascriptThe Java alternative to Javascript
The Java alternative to Javascript
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
jQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and FuturejQuery 1.9 and 2.0 - Present and Future
jQuery 1.9 and 2.0 - Present and Future
 
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
Vlad Zelinschi - Embrace Native JavaScript (the anti-plugins talk) - Codecamp...
 
Learning jQuery @ MIT
Learning jQuery @ MITLearning jQuery @ MIT
Learning jQuery @ MIT
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahi
 
Developing for the mobile web
Developing for the mobile webDeveloping for the mobile web
Developing for the mobile web
 
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTMLHow to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
 
KharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themKharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address them
 
One code Web, iOS, Android
One code Web, iOS, AndroidOne code Web, iOS, Android
One code Web, iOS, Android
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devicesSlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
 
ME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS FundamentalsME vs WEB - AngularJS Fundamentals
ME vs WEB - AngularJS Fundamentals
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
 

Recently uploaded

Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.IPLOOK Networks
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 

Recently uploaded (20)

Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 

jQuery Conference 2012 keynote

  • 2. jQuery Conference 2012 San Francisco Dave Methvin President, jQuery Foundation Lead Developer, jQuery Core
  • 3. Just a few things going on… • jQuery Foundation – Gives us a way to organize support for the jQuery project and community efforts • Software development • Documentation and training • Conferences – Tomorrow morning's keynote by Richard Worth • jQuery Core, UI, Mobile
  • 4. jQuery Core Timeline • jQuery 1.0: January 2006 • jQuery 1.1: January 2007 • jQuery 1.2: September 2007 • jQuery 1.3: January 2009 • jQuery 1.4: January 2010 • jQuery 1.5: January 2011 • jQuery 1.6: May 2011 • jQuery 1.7: November 2011
  • 5. jQuery Core Timeline • jQuery 1.0: January 2006 • jQuery 1.1: January 2007 • jQuery 1.2: September 2007 • jQuery 1.3: January 2009 • jQuery 1.4: January 2010 • jQuery 1.5: January 2011 • jQuery 1.6: May 2011 • jQuery 1.7: November 2011
  • 6. jQuery 1.8: July 2012 • Only major release this year • Fix bugs, make things faster (of course!) • Add some nice things (CSS vendor prefixes) • Dump unneeded code (Safari 2 for example) • Deprecate "trip hazards" – E.g. $.browser • Set the stage for future work
  • 7. jQuery 1.8: Modularity • New grunt build system (yay @cowboy!) • Intended for advanced users in 1.8 – You must understand your project dependencies • Exclude parts you don't need – ajax, css, dimensions, effects, offset, deprecated • Simple option in the jQuery build – Documented in the README file – Blog post to come
  • 8. jQuery 1.8: Modularity • Theoretical example: Small mobile app – Uses classes for CSS styling and animations – No third-party plugin dependencies – Only needs JSONP, using jaubourg's jsonp.js – jQuery 1.7.2: 32.8KB min-gz (full jQuery) – jQuery 1.8: ~24KB min-gz (including jsonp.js!)
  • 9. THIS is why it can't be simple
  • 10. jQuery 1.8: Closure Compiler • Experimental branch, not yet available • Supports CC's ADVANCED_OPTIMIZATIONS – Renames variables and property names – Eliminates dead (uncalled) functions – Inlines function calls • Intended for really advanced users – obj.name vs. obj["name"] confuses optimizer – Code annotations act as optimizer hints – All your code needs to be CC AO safe – Difficult to debug
  • 11. The Future of jQuery
  • 12. The Future of jQuery
  • 13. jQuery 1.9: Early 2013 • Continued API cleanup – Better modularity and speed, smaller size – Remove some deprecated APIs • Compatibility plugin – Includes most of the APIs we remove – For the times you just want to "make it work" • Support and unit tests for all major market- share browsers (including IE7/8) • IE6 serious-regressions-only policy
  • 14. This is the exciting part
  • 15. jQuery 2.0: Early 2013 • Same API as jQuery 1.9 • No major feature additions
  • 16. jQuery 2.0: Early 2013 • Same API as jQuery 1.9 • No major feature additions
  • 17. jQuery 2.0: Early 2013 NO SUPPORT FOR IE6, IE7, NOT EVEN IE8
  • 18. Why This Approach? • OldIE workarounds permeate jQuery – Refactoring to a plugin isn't practical • We have a solution for oldIE – version 1.9 – Remember, it's the same API
  • 19. Shunning oldIE: Advantages • Jettison all the oldIE hacks – "Attroperties" – DOM-vs-JavaScript memory leaks – innerHTML serialization quirks – HTML5 shimming – Spontaneous tbody in empty tables – Opacity via filters, causes grainy text – Incorrect case sensitivity on attributes – Non-W3C attachEvent model – Can't change type property of inputs – Link href attribute returns absolute URL – No bubbling on change and submit events – Unreliable offsetHeight on table elements – Thrᵒ exceptions on invalid CSS values ws – Appended checkboxes lose their chec√s – Broken try/finally – there's G0T to be a catch – Host objects, please NOT hosT objects – It comes it cOmes cannot fi​ght it com̡e̶s, ̕ – ̵Un̨ho͞ly code destro҉ying all enli̍̈́̂̈́ghtenment, – JScript lea͠ki̧nᵒ fr̶ǫm ̡yo​ r eye͢s̸ ̛l̕ik͏e liq​uid pain, g ͟u – ALL IS Lo ̩͇̗̪̏̈́T ALL I​S LOST – MY CODE MY CODE ᵒh noNO NOO o
  • 20. Simplify, Simplify, Simplify • Removing oldIE improves the code base – Faster • Fewer feature detects required at load time • Fewer tests needed at run time – Smaller • Especially when combined with modularity! – Revisit design decisions warped by oldIE • E.g., attach data directly to DOM elements
  • 21. Not Just Mobile – Modern • Yes, oldIE is just a "desktop" concern • But "mobile" is not just iOS/Webkit – Poster boy: Microsoft Surface Tablet • Not just one screen size; not Webkit • Mouse, touch, stylus, maybe even Kinect? – Responsive design to the rescue? • jQuery 2.0 will support modern browsers – Not just a Webkit subset of browsers – We don't want to break the web
  • 22. "IE8 can't use my site?"
  • 23. Breaking the Web? • jQuery Core team will support two versions – Version 1.9 works with IE 6/7/8 – Version 2.0 does not "But Dave, my web site still needs to support IE 6/7/8 but I want to use jQuery 2.0!"
  • 25. jQuery 2.0: "Tears of Joy" Policy • Include jQuery 1.9 only for oldIE: !--[if lt IE 9]> <script src="jquery-1.9.0.js"></script> <![endif]--> <!--[if gte IE 9]><!--> <script src="jquery-2.0.0.js"></script> <!--<![endif]-->
  • 27. jQuery Core Future Growth • Improve browser features or solve issues that exist everywhere (e.g. CSS vendor prefixes) • Beyond that, emphasis on plugins – Don't make everyone pay for platform-specific features and needs • You can still use a CDN jQuery but compress all your plugins and site code!
  • 28. Why We Plugin: Touch Events • Two non-standard implementations – Webkit touch events – Microsoft MSPointer – No sign of a W3C standard (Apple patents) • Can we normalize like we did with oldIE? – Maybe … but to which implementation? – Webkit: de facto; MSPointer: flexible, unproven • Should we include this in core? – Way too early for that. Plugin for now!