SlideShare ist ein Scribd-Unternehmen logo
1 von 29
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 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
Hristo Chakarov
 
jQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great MergerjQuery UI & Mobile - The Great Merger
jQuery UI & Mobile - The Great Merger
scottgonzalez
 

Was ist angesagt? (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
 

Andere mochten auch

jQuery Foundation Keynote
jQuery Foundation KeynotejQuery Foundation Keynote
jQuery Foundation Keynote
Richard Worth
 
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
Kevin Ballard
 
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
Nick Landry
 
gevent at TellApart
gevent at TellApartgevent at TellApart
gevent at TellApart
TellApart
 
End of year review/preview
End of year review/previewEnd of year review/preview
End of year review/preview
NigelG
 

Andere mochten auch (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
 

Ähnlich wie 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 2013
dmethvin
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
dmethvin
 
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
Mark Roden
 
Developing for the mobile web
Developing for the mobile webDeveloping for the mobile web
Developing for the mobile web
joeysim
 
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
reebalazs
 
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
Salem Ghoweri
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
[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
 

jQuery Conference 2012 keynote

  • 1.
  • 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!"
  • 24.
  • 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!