jQuery Core: Version 1.9 and Beyond

Posted on by

Please check out the followup post before jumping to the wrong conclusion.

As the last blog post discussed, jQuery version 1.8 is undergoing a spring cleaning to remove insecure, inefficient, ineffective, and inadvisable features. We’ve also begun the work to allow you to build custom versions that exclude parts of the library for even greater savings. Those efforts will make it possible for you to enjoy the jQuery API you need without carrying around the parts you don’t want.

Now that we’ve cleaned house, it’s time to take a look forward. There’s just one thing interfering with our vision of the future, and that’s the ghost of browsers past. Internet Explorer 6, 7, and 8–collectively, oldIE–have been a thorn in the side of web developers for a decade. Collectively, these browsers of a bygone era still represent up to one-third of users visiting some sites. That is a lot of users–people who still want the information, services and products that web sites provide. For many web sites that use jQuery, it’s not practical or profitable to ignore that audience.

jQuery was conceived specifically to address the differences in browsers, so we’re not going to abandon the essence of our philosophy and simply disregard the millions of active Internet users who (for whatever reasons) still use oldIE. Yet we also want to move ahead and take advantage of modern browsers, especially the growing mobile market.

The Road Ahead

jQuery 1.8 should arrive within a month. Here is our thinking about the next two versions of jQuery to follow it, and when they’ll arrive:

  • jQuery 1.9 (early 2013): We’ll remove many of the interfaces already deprecated in version 1.8; some of them will be available as plugins or alternative APIs supported by the jQuery project. IE 6/7/8 will be supported as today.
  • jQuery 1.9.x (ongoing in 2013 and beyond): This version will continue to get fixes for any regressions, new browser bugs, etc.
  • jQuery 2.0 (early 2013, not long after 1.9): This version will support the same APIs as jQuery 1.9 does, but removes support for IE 6/7/8 oddities such as borked event model, IE7 “attroperties”, HTML5 shims, etc.

Our goal is for 1.9 and 2.0 to be interchangeable as far as the API set they support. When 2.0 comes out, your decision on which version to choose should be as simple as this: If you need IE 6/7/8 support, choose 1.9; otherwise you can use either 1.9 or 2.0.

Questions and Answers

If jQuery 1.9 and 2.0 are basically the same API, what makes 2.0 compelling? Smaller size, better performance, and the lack of problems introduced by the need for oldIE support. We expect that we can improve error handling in the $.Deferred implementation in 2.0, for example, whereas we can’t do that as long as oldIE is supported.

My site still has many IE7/8 visitors but I want to use jQuery 2.0. Can I do that? If your web site needs oldIE support, and we expect most sites will need it for at least another year or two, you can use IE conditional comments to include version 1.9 only when visitors are using 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]-->

Why not make an “oldIE plugin” for jQuery 2.0? Special dispensations for oldIE are sprinkled throughout jQuery. Refactoring the code to provide enough hooks so that oldIE support could be added as a plugin would complicate the code for the modern browser case. Plus, developers supporting oldIE and using a public CDN would then need to include two files (jQuery 2.0 and the oldIE plugin) instead of one.

Once jQuery 2.0 is released, what happens to 1.9? In a departure from the past, we’ll continue to fix bugs in 1.9 (as minor releases). Having just gone through a spring cleaning for 1.8 and 1.9, we don’t anticipate adding a lot of new APIs in the future. Instead, we prefer to add new functionality through plugins compatible with both versions where it makes sense. So don’t feel like you’re being left behind when using version 1.9.

Is jQuery 2.0 basically for mobile devices? No. Although jQuery 2.0 will be a great fit for HTML mobile apps, including ones written with jQuery Mobile, it is not a Webkit-only library that targets just iOS and Android. In addition to mobile browsers, 2.0 will support (and be tested!) with modern desktop versions of Internet Explorer, Opera, Firefox, Safari, and Chrome.

How much smaller/faster will jQuery 2.0 be? We won’t know until we’re done, or at least close to being done. You can bet that we’ll tell you more as the release date for 2.0 draws near. Better yet, you can try the beta when it is released and see for yourself!

99 thoughts on “jQuery Core: Version 1.9 and Beyond

  1. Daniel on said:

    Good decision to drop support for old IEs. Makes it much easier now to explain to clients why our agency does not support old IEs anymore. Because it’s a waste of time.

    PS: I’m looking forward to this snappy new core :)

  2. It seems like the jQuery team is now driving the standards that they worked so hard to get other companies to stop doing.

  3. Ryan Kaldari on said:

    I understand dropping support for IE6 and even IE7, but why IE8? IE8 is still 10% of the browser market and doesn’t require half as many hacks as IE6 and IE7. Dropping IE8 is premature, IMO.

  4. Jeff on said:

    This is a good thing. I’ve already completely dropped support for 6 and 7, and I spend very little time messing with 8. I just make sure the site functions and mostly looks right and call it good. By next year IE8 usage will drop even further. But even if IE8 usage were still high, it wouldn’t matter one bit. Those of you saying that you cannot use jQuery 2.0 because you have a large IE8 user base are doing it wrong. You should not be developing a website that requires ANY javascript of any kind whatsoever. Build with progressive enhancement in mind. IE6-8 users should still see a site that is fully functional with javascript disabled. Those with modern browsers will get the nice fancy site with all the wizbang features. I build all of my sites with zero javascript, then I will add in extra stuff using jQuery if I feel the need. That’s the way it should be IMO.

  5. Thanks for having the balls to drop support for crappy browsers. And even so, you’ll still support them for a while longer through 1.9, so even developers that still live in year 2000 are not actually left behind.

  6. Spudley on said:

    @TedWood:

    1) IE8’s codebase may have a lot of similarity with IE6/7, but it had many fewer bugs and many more features. The vast majority of special cases to deal with IE6/7/8 only apply to IE6, and most of the rest to IE7. IE8 is actually pretty good in comparison. Supporting it without needing to support IE6/7 is actually a pretty benign concept.

    2) I’m not looking for new “features” to be added; what I’m looking for is continued support for IE8 – ie that I can use jQuery and know that if a problem is found it will be fixed and I’ll be able to use that fix. And I’m not looking at the 1.9/2.0 transitional period; I’m looking beyond that, to when 2.1 is released. Unless they plan to keep supporting 1.9 beyond that point, it will be a big problem for a lot of people.

    3) I am looking at current browser stats, and yes, you’re right: IE8 is on the decline. It is not, however, anywhere close to being small enough to drop support for yet, and is unlikely to get there for a few more years yet.

  7. @Andrew
    I cracked open my Analytics. IE(total) makes up about 12% of users on most sites I develop.
    So essentially, it can take a running jump…

  8. Belligerent Fanboy on said:

    I HAVEN’T READ THE ARTICLE PROPERLY SO I CAN’T BELIEVE THE PEOPLE WHO MAKE THIS PRODUCT I GET TO USE FOR FREE HAVE DECIDED TO DO SOMETHING WITH IT THAT I DON’T LIKE OH MY GOD THIS IS INJUSTICE I AM FURIOUS

  9. Jamie on said:

    ” If you rely on jQuery to solve browser quirks, then either you are working on some edge-case projects, or I should advise you use other methods to tackle these problems.”

    Really? That seems odd since one of the three primary selling points on jquery.com is “cross browser.” The other two are “lightweight footprint” (ok…) and “css3 comliant.”

    Come on. Eliminating cross-browser problems is THE WHOLE REASON that most people started using jQuery. Do I need jQuery to wrap “querySelectorAll” in “$” for me? I think I could handle that code myself, if you only care about browsers that have a selection engine built in. If every browser returned the same value for “innerWidth” then why would I need jQuery’s methods?

    The value of jQuery isn’t just a bunch of methods for moving nodes around, or a bunch of utility methods that are easily available in other libraries. That’s nice, but it only matters if we can be assured it works everywhere. That’s the whole point.

  10. Doug on said:

    I think much of this argument is semantics and speculation. A suggestion that may help and doesn’t deviate much for your current plans would be to just change the naming conventions and packaging of the versions. You have already talked about the ability to do a “Roll your Own” version of jQuery that only includes the parts you need. Don’t do a version 1.9 and 2.0, just give people the ability to include the compatability layers or not. Why have the confusion of two different versions when they have effectively the same API.

    I think it would be far simpler to just use the same version numbers, but add a letter designator saying it is Old IE Compatable, Version 1.9 or 1.9c. When you are packaging your own jQuery setup you could also select regular or c components for the package.

    Maybe I am wrong, but I think this would reduce the confusion and uncertianty about the versions, plus help maintain a focus on OldIE compatable components.

    Personally I can’t wait for old IE to die and I am even considering putting links to upgrade users of old IE right on my pages. Hopefully with a little polite nudging we can get more of our users off IE6/7/8. I don’t care what browser they use, just not those.

  11. Let me stick my .02 in here too. I love jQuery! But what would REALLY be cool would be just a tiny stub that can do basic Ajax and detect if some part of jQuery is referenced in code and then lazy load it. That way, you REALLY only get the parts you need and they stay in the browser cache too. Plus, you’d always have the option to regular load the parts you want, or to utilize any plugin you wanted just by referencing it.

  12. As has been mentioned, the reason JS libraries came into existence in the first place was cross-browser quirks. So someone just needs to write a jQueryQuery metalibrary that handles the conditional comment for you, so you don’t have to. One script tag, same as it always was, and it injects the right version of jQuery based on the browser. ;)

    It will be interesting if/when other libraries follow suit, since the difference will then be about what features the libraries actually provide. That’s always been a difference, but it’s never mattered as much as how well and how efficiently they deal with browser quirks.

  13. if you think ie 6,7,8 will still hold major market share by mid 2013 you are deluding yourselves

  14. Pete on said:

    Disclaimer: My corporate clients are mostly IE. IE7/8 and some 9. I have to ensure 100% compatibility on every site with those 3 browsers.

    I can’t understand those talking about completely dropping jQuery _now_ because jQuery 2.0, which won’t be out for at least another year, will be dropping support for it.

    What exactly are you developing that you must upgrade the version of jQuery the moment every new release comes out? I would assume nothing with any significant amounts of jQuery code.

    After QA testing a site and launching, we generally ‘freeze’ a site, as updating jQuery versions can introduce bugs. We have sites that are running perfectly happily on jQuery 1.4+. If you’ll note, jQuery UI even supports jQuery 1.3.x.

    I will most likely be using jQuery 1.9 without the conditional when it comes out. I don’t believe there will start to be majorly compelling needs to switch to 2.0 for quite a few years. In which time, worst case scenario, use the conditional.

  15. Finally! on said:

    Finally, I have been doing web design for 10+ years now (believe it or not) and this should be a pretty large nail in that complete POS’s coffin.

    And to all the “I still support IE6 cause my great grandmother still uses it”, you have NO place in this profession, leave now.

  16. Robert McKee on said:

    We dropped support for IE6 a year ago. We dropped support for IE7 on 50% of our sites 6 months ago. We will completely drop support for IE7 within the month. IE8? That will be a while still, and it times perfectly with the jQuery team. If 1.9 comes out next year, we will use the conditional to select the appropriate library. So long as 1.9 gets supported and in sync with 2.0 for will likely be a year, then that’s works for us.

    If it gets dropped sooner than that, or if 1.9/2.0 become out of sync then we will have to freeze jQuery at that point.

  17. Good.

    It will cause some work and difficulties, but not much in comparison to the work and difficulties that IE has caused over the past 10 years.

    Shame though, if a third of the world’s websites became inaccessible to IE users overnight MS would probably release the real fixes for the IE problems within a week or two.

    As it is they will continue to drag their feet all the way to 2022, doing just enough to avoid prosecution, and not enough to give the world the impression that standards can be set without either full MS approval, or a 20 year uphill struggle costing millions of man hours.

    However it may look today, it’s probably a win win for MS in the grander scheme of things.

  18. testman on said:

    If you drop support of IE8 you will lost all the enterprise world that have still XP desktop. As a consequence most development will stick for years to come on 1.x.

    IMHO, you should support at least IE8 until XP EOD and drop it then.

  19. Celeste on said:

    What about all levels of government websites that use jQuery? Government departments are typically stuck on older versions of browsers for much, much longer than is usual. You could argue that it doesn’t matter since users and the general public are unlikely to have the same restriction — but that’s assuming that you don’t have a public office/services on a website that need to be demonstrated in that public office.

    Libraries (part of local government), for example, with public computers on older browsers, will probably have to use an older version of jQuery if they use it on their websites (so that it works with those public computers).

  20. Mike on said:

    saadaz Says:
    June 28th, 2012 at 9:46 pm

    Microsoft, Y U NO FORCE UPDATE to IE10 or 9?

    // Because they would first have to figure out how to force XP users to update to Vista/7/8. :)

  21. MisinformedDNA on said:

    Conditional comments will not exist in IE10, so the proposed solution in the post won’t work as IE10 won’t load the jQuery file.

  22. David on said:

    I greatly support this movement. By supporting old and very outdated browsers, you are allow you to stay in the past. By dropping the support in 2.0, we can finally move forward and optimize for current and up to date technology.

    Backwards compatibility makes sense, but only till a certain degree. In time, we have to move forward in order to stay competitive. That moment in time has come and gone for the over ten year old Internet Explorer 6 and I refuse to make Internet Explorer 7 compatible as well. With IE8 getting obsolete in 2015(XP support officially dropped), the time to soley move forward with 2.0 has come.

    Keep up the good work!

  23. Dropping old IEs is going to make enough sense by 2013. People using those old browsers are probably not really anyone’s target audience anyway. IMO IE6/7 are already dead. IE8 will linger until XP is obsolete (b/c it’s the highest the XP can be updated to). But the people using IE8 are either brainless, corporate drones, or devs doing testing ;]

  24. James Smith on said:

    My only concern with this is that a number of our sites are used by Western Europe’s largest employer (with well over 1 million employees!) who still use IE6 as that is the web browser on which all their core web-applications were developed for – and they are not compatible with other version of IE or other web-browsers…

  25. Martin on said:

    @James: Well thats the sad fact… I just dont understand how companies can be so damned backward. But its the IT-departments, many of thoose people are for some reason afraid of changes, luckily our customers IT-department have realised that updates wont kill you.

    I would think that dropping IE7 and down would be wise but IE8 should perhaps stay on supported for a while more. Cause even though statistics say that older IE is getting used less and less. Most of the Firefox and Chrome users are private persons, the big mass of customers for IT-companies are in businesses where they for the most part use IE.

  26. Paul Carroll on said:

    not supporting these older browsers with a throw away statement of “if you use jquery for legacy browser support you’re doing it wrong” is a sort of typical digital hippy decision making we see from gen-y rosey land hipsters of today.

    taking this decision clearly demonstrates that you live in a world where hip new technology reigns supreme and have little to any exposure to the *real* world where corporate types just can’t make whimsical decisions about the technology they support.

    as abhorrent as these browsers are having a unified means of programming in them is the essence of a library like jquery. some reasons these guys can’t “just upgrade” are they support internal legacy applications they don’t have budget to rewrite.
    YES this sucks
    but it’s a problem that is systemic in modern programming (COBOL anyone?) and you can’t expect the rest of the world to change as rapidly as you’d like just to satisfy you utopian view of a codebase. at the end of the day you need to start asking yourself about the technological decisions you make and their real world impact in the businesses they effect, and ultimately their bottom dollar…. failure to do so will make a very UNemployable person as no manager will support losing money “just because it makes the code cleaner”…. *none will*

    i for one am glad jquery supports all the features i need for the foreseeable future as i will not upgrade to 2.0 and alienate customers because of the dogmatic view of some digital hippies.

    jquery will find it hard to survive long term with this kind of thinking. you guys need to take a lesson from the umbraco crowd (http://umbraco.com/follow-us/blog-archive/2012/6/13/v5-rip.aspx/).

    please reconsider and realise you’re not just coding to satisfy your internal geek, what you are *commendably* supporting ties together the loose ends of legacy support in quite a special and magical way!

    regards

  27. The core point of an abstraction layer is cross-browser compatibility – this is a departure from this just because it makes life easier to brush older-but-still-popular versions of IE under the carpet.

    IE9 was only released in March last year – the largest stats reporting service NetApplications measures IE8 and below usage as just shy of 35% of visitors worldwide (across 160 unique visitors, 40k websites). I know many parts of the UK Gov for example use IE7.

    This decision means jQuery devs will have to serve up an old service-patches-only version (that will steadily lose support from the plugins community) to over a third of users. A poor decision.

  28. Sweet! I can’t wait until the jQuery 1.9 arrives early 2013! jQuery 1.8 is so awesome! There’s just a lot of positive comments for it that I can’t just express! Great job!

  29. DjCloud on said:

    Dual version looks perfect for me. If you really can supply the same API for 1.9 and 2.0 we, as developers can choose, or even we can use them both. Having OldIEs to have 1.9 support, with slower jQuery, but decent browsers to have faster jQuery.

    But it looks to be hard work in there. I hope you have luck.

  30. Those versions of IE are still heavily used in many sectors. For example in the health care and factory sectors 90% of our users use IE. Of that 90% IE7 accounts for 55%.

    IE may be going away for average customers but for companies not for a very long time. We still have one of the largest medical firms in the country who is on IE6 and will be till 2014.

  31. I’m planning a building an HTML5 game and 2.0 sounds perfect for me! My other websites will probably just use 1.9. I’m not really sure why everyone’s talking about 2.1. Let’s just imagine that 2.1 adds support for doing something with HTML5 canvas animations. Do you really need that new feature in IE8 in the year 2014? I mean come on guys, I’m sure they’ll keep supporting 1.9 as long as there are people using it. They want to add things that wouldn’t make sense in IE8 anyway. They’d probably tell us about those new feature except the other libraries that only support modern browsers would be able to beat them to the punch. Just close your eyes, take jQuery by the hand and walk into the unknown. I know it’s scary, but it’ll all make sense a few years from now.

  32. Since 90% of my visitors are using Chrome, Safari, and mobile, with less than 1% using old IE (and none of them buy anything, the cheapskates), I will be more than happy to see that junk go.

    I see quite a few people are being huffy about it, but really – nobody is forcing them to stop using their current stuff, and why should modern users be forced to suffer just so a bunch of people can still pretend that XP is current?

  33. I really like the concept of splitting jQuery 1.9 and 2.0. Our product specifically chose not to support older IE versions. only with IE10 will our site be fully functional on IE. It simply is not part of our target audience, for a variety of reasons which make business sense to us. It will be nice to get rid of that baggage in the version of jQuery I am using.

    At the same time, I am glad that developers won’t have to chose between supporting older IE and using jQuery.

  34. James McManus on said:

    I have mixed feelings on this. I really like that the project is looking to the future and hasn’t lost sight of the importance of being slim and modular. The mischievous side of me hopes some important sites accidentally use v2 only, causing some visitors to upgrade or switch browsers (if they can) sooner than they otherwise would.

    However, I suspect it will be difficult to maintain two codebases in perfect alignment, so I would hesitate to develop using both versions with conditional comments as suggested. Any small bug or deviation would cause extra debugging headaches that can be avoided by just using one version of the library. If I need IE<9, I'll just stick with 1.9.

    Still, it will be nice to have a more optimized version available for the growing number of scenarios that don't require "oldIE" support.

    Thanks for all the work that everyone has put into the tool that keeps web development enjoyable!

  35. Version 2.0 would be useless for me. I, like all other developers, can’t stop supporting older versions of IE (except maybe for 6 may it rest in peace). That means that my code has to work the same in both libraries which you can guarantee that it won’t. It is double the work and double the testing which they pretty admit to with the example of conditional statements for loading the libraries.

    Maybe it would have been better if 2.0 supported the older browsers and they finally decided on one method of working with events (and fixing that method so that it actually works like browsers work ie in a browser click sets the checked and then fires the function, jquery have decided to do it the other way (my rant)).

    They should be very careful about this as they have not been around for long and don’t want to be the next myspace (superceded by facebook).

    It would also be nice to see a mobile only version which would solve some of these issues as well.

  36. @Kill IE8 With Fire

    Love developers like you. Means more clients for me. If I told my clients that I am not going to support 20 to 30% of their customers, I wouldn’t have much work.

    Support has to be based on statistics not version release. Current global usage is about 15% for both 7 and 8 (http://gs.statcounter.com/#browser_version-ww-monthly-201109-201209) but I have clients where it is as much as 40%.

    This is the real times we live in.

    PS. Google Apps is dropping support not the search engine. I can’t imagine what the dollar value will cost a company like Google to turn away 14% of the web market. I bet it’s not a small figure.

    If we could kill IE with fire, I would supply the matches.

  37. Happy to hear news about jQuery 2.0.

    # for OldIE Lover, just imagine this library is free. How many developers to built this library. If these project always look back to older IE version, how much cost for fixing bugs? It’s time to move to new browser like >= IE9

  38. Actually, MS has force updated to IE9 for everyone using vista and win7/8… I believe there was a force update to ie8 for XP for everyone that has security updates enabled.

    If someone doesn’t have security updates enabled, well then… i think they are asking to get their computer turned into a zombie and unintentionally contribute in a DDOS.

  39. Selosindis on said:

    It is our responsibility as web developers to move the web forward. A user who is using IE6 is using it because they don’t know any better or they are restricted by antiquated network security. Either way, the only way they will notice is when their services stop working.

    “If I click this link, I can have my Google back in 30 seconds? I’m there!”

    We all want IE dead, but we’re unwilling to do anything about it… Not a great approach, in my opinion.

  40. man does anyone read?

    OMFG ie6/7/8/6/7/8/6/7/8/6/7/8/7/7/6/8/6/7/7!!!!!!!!!!!!!!!!!!!!

    If jQuery 1.9 and 2.0 are basically the same API, what makes 2.0 compelling? Smaller size, better performance, and the lack of problems introduced by the need for oldIE support. We expect that we can improve error handling in the $.Deferred implementation in 2.0, for example, whereas we can’t do that as long as oldIE is supported.

  41. Im currently using jquery 1.9 but it cant read the $.browser object!
    It cant retrieve any property of browser!Is this a bug or my mistake?
    But curiously ,it is fixed when i switched back to 1.8!

  42. I agree very strongly that it makes more sense with the “roll your own” customization to have the option to support various browser versions within that rather than doing a 1.9 to 2.0 switch. Every situation requires subjective implementations that depend on a variety of factors and I believe as well as others this will cause unnecessary confusion and frustration.

  43. Ranjith on said:

    Dropping Support for IE 6/7/8 is the best ever new….
    just wishing Microsoft drops IE as a whole…

  44. James on said:

    I really hope that the 1.9 codebase is maintained for more than a “couple of years”. We use jQuery for all of our corporate apps, but getting IE9+ rolled out in our standard build is just Not Possible Yet(tm) because of all the archaic apps we still have to support (think enterprisey versions of Siebel and Oracle). In a nutshell, PLEASE continue to support jQuery 1.9 for those of us that are forced to use IE8 still! Thank you :)