jQuery in 2013 – or How to Properly Drop IE

jQuery in 2013 – or How to Properly Drop IE

It’s a well-known fact that the folks at Microsoft have long had their tail between their legs, because of IE. The proverbial enemy of every front-end developer and the go-to brunt of the joke at conferences and chatrooms (and even in client meetings) has been IE8 and below.

Let’s move past the IE bashing, and talk about jQuery’s plan to drop support for old IE.

Don’t entirely drop old IE until its usage is miniscule.

Certainly, there are plenty of web development firms that have already dropped support. Most of us have long since dropped IE6, with many doing the same for IE7. But there is still a significant push to hold on to the IE8 crowd.

The jQuery team has been plagued by IE for years. JavaScript in old IE (their collective moniker for anything below IE9) is antiquated, slow, and lacks the new features added to the language since their respective launches. As a result, the codebase of jQuery must incorporate solutions to handle issues specific to IE. This makes the library significantly larger, and as a result, it takes a lot longer to load. So, as part of version 2.0, jQuery will be dropping support for old IE.

Sort Of

jQuery is actually dropping the older versions of IE in a very graceful fashion.

Instead of completely dropping old IE in 2.0, they are going to maintain support for 1.9. By doing this, jQuery is doing two main things:

Understand the standards and why you won’t support old IE.

  • Enabling and affirming new, standards-based browser technologies
  • Supporting an old standard (while continuing to label it old)

In other words, they are publicizing to everyone that, yes indeed, there is a user base still on old IE. This is the main argument that comes up when people talk about dropping support for it. Certainly, we don’t want to completely drop support for a significant percentage of users, do we? Of course not! But we are also being transparent by saying that the capabilities (and resulting user experience) of IE are comparatively outdated and should be moved away from as quickly as possible.

Let’s give Microsoft some credit, though, in realizing their own mistakes. As Paul Irish recently noted, Windows is pushing updates to IE as “important”, meaning that everyone who is on XP and up will at least have IE8. That’s not the best case, but it’s certainly far better than having most of China stuck on IE6. Perhaps this announcement is in part responsible for jQuery’s long-awaited and highly-requested decision to remove the IE specific code-bloat.


The Impact on the Pros

So how does this play out for development firms? Here are a few things that this will mean for development firms and freelancers:

As of version 2.0, jQuery will be dropping support for old IE.

  1. Don’t entirely drop old IE until its usage is miniscule. Note the word “entirely” here. This suggestion is that, simply, there should be an avenue that the client can take to get support for IE users. IE8 is not IE5 yet.
  2. Don’t support IE by default. Make IE support a separate service. The way jQuery is doing it is by saying, “here is a not-as-good alternative.” The way you may say it: “IE won’t have some of the aesthetic or functional features that other browsers will,” or “we can do some optimization specifically for IE, if you absolutely need it, for a certain price.”
  3. Understand the standards and why you won’t support old IE. This is a big one. When you go into a client meeting, you need to know the reasons why supporting old IE is not a default for you or your company. The reasons to support old IE have nothing to do with the extra effort that is expended by the developer. If you don’t want to support old IE because it takes you longer to develop cross-browser code, then you also shouldn’t support mobile.

Instead, the right reasons are about the users! Old IE performs badly. It has broken and buggy implementations of almost everything, it is slow, and it doesn’t follow standards. Some versions are insecure, and most versions are way behind on implementing new language features that enhance the user experience.

A rule of thumb: the reasons to not support old IE cannot be circumvented by cross-browser compatible code.

Certainly, we don’t want to completely drop support for a significant percentage of users, do we? Of course not!

Think of old IE as an old car. You wouldn’t sell or fix an old broken down car to someone when you know that, for the same price, they could have a brand new one. The old car doesn’t follow the regulations of safety or efficiency, and it has a bunch of weird, proprietary parts that aren’t being manufactured anymore. Of course, you could pay extra to have those specific parts shipped to the mechanic from a specialty shop, and the mechanic might be able to fix the car to go a few extra miles. But shouldn’t the mechanic do you the favor and get you into the new car as fast as possible?

Before we get a barrage of comments screaming “some users don’t have control over what browser they use!”, this article is using a broad stroke with a broad brush. Maybe the user doesn’t have a choice, but someone does have a choice that could affect the users.


Summary

In 2013, jQuery is making a bold move towards publicly upholding web standards, and dropping default support for out-of-date technology. In 2014, it’s likely that jQuery will completely drop support for old IE, although they haven’t announced that yet. The way that jQuery is achieving this end-goal is a prime roadmap for developers to follow.

Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://blogverize.blogspot.com Nimsrules

    I agree with facts stated here. Although jQuery being javascript has less compatibility issues as compared to CSS3, IE is IE. I too have stopped supporting it since an year. And yes looking forward to come across some more gorgeous jQuery goodies this year.

  • Boris

    The sooner web developers and clients drop support for IE the sooner the web can move forward. It feels like we are always stuck in a viscous cycle thanks to Microsoft.

  • Israel

    The fact is that people that can’t update their browser is because of company restrictions or third world country technology restrictions. I personally can’t take those users in consideration speaking of market/financial strenght abiltiy, plus they are already used to not be able to access many sites already.

    I think we as developers/designers have more power than what we would like to accept. We are the driving force behind what gets to the web, we are the ones that know what is best for the user in terms of UX, we should be able to redirect the web towards a better future by putting pressure against those browsers that refuse to adapt to the standards of today’s technology. It is us, not them (users/browser co.) that have the power to change things for the best.

    • https://plus.google.com/u/0/102240827110583700910/about Ritter

      I don’t fully agree that third world countries have that much of “technology restrictions”. It is more about they need to change or a lack of change. I also don’t agree with you about “market/financial strength ability” because the third world is a huge market that is emerging!

  • Guy Levy

    The main reason, I think, jQuery was successful is it’s cross browser support. if jQuery will only support recent browsers then I can write my code in pure js. no need for jQuery.

    • http://dice.wordpress.com kanuj bhatnagar

      You’d actually be right for the most part, but I personally tend to consider jQuery as a Javascript framework, quite similar to the concept of framework’s PHP has. Sure I could write a whole lot of code in PHP to make a simple CMS site, but why do that when I can simply use a tested framework to get that done. I certainly wouldn’t like to go back to writing five paragraphs worth of javascript code just to send an AJAX request, now that I’ve used jQuery.

      • http://1dollarwillbuyit.com julio

        Actually jQuery is a library its right there on their website. a framwork is a collection of libraries that work together. something like ExtJS

  • http://www.cartondonofriopartners.com KC Hunter

    IE has held back so many projects for so many years, I’m glad to hear that this issue is finally being dropped across the board. While we may never get a universal standard for CSS or html5 video and audio implementation, we can at LEAST finally stop having to support IE7 within the next year or so.

    Unfortunately, I am right now dealing with a client that only has IE7. Many companies are slow to upgrade for “security reasons” (ie. IT team does not have the time or is too lazy to do a batch upgrade).

    Oh, 2014, you can’t come soon enough!

  • Michael

    I personally don’t have stopped the ie6 support, but i reduced it to a minimum.
    I still check, whether it’s visible in ie6, but i do enhancements for modern browser, i dont care, whether there are rounded borders on ie, modern browsers have a nice ui and older ones a more simpler one, but i still check whether it runs right or not.. but this is easy with crossbrowser compatible code.

    same thing with transparency.. no more ie png fix, they can see grey backgrounds, or can update, simple as that.

  • John

    Right, same stuff reheated as before. IE (unless you are on some heavy animation website) is not that slow and that’s probably why mommy do not change, she’s happy with that she got.

    Thanks for telling us what it’s mean and what we need to do! but you forgot one little option:

    Stop using jQuery! and use a technology that support a framework for it’s users and there needs, not for some elite community that thinks it’s better to remove cross browser compatibility for some quest for cleaner code.

    Problem solved, no need to drop ie8 support. Keep it as long as you need and you will not have to follow some developers roadmap to phase out ie from the world.

    • Abhijit

      No need to stop using jQuery! As said in the article, if you need to support older versions of IE, then use the 1.x branch of jQuery, which is pretty good anyway.

      • http://www.gncart.net Ali Emre

        You may be right, but the developer who chooses 1.x branch of jQuery would not take advantages of version 2 and higher. I think the most logic step is dropping support of IE permanently at version 2 of jQuery. Instead of spending hours to fix IE errors, maybe we can produce more efficient and stunning applications and designs on web.

  • BlueScreenJunky

    “Let’s give Microsoft some credit, though, in realizing their own mistakes.”
    So whate exactly were their mistakes ? Having an immensely popular browser and not forcing people to update ?

    I mean, is jquery still supporting Netscape 7.1 and Opera 6 (which were released around the same time as IE6 ?), I wouldn’t bet on that since they don’t even mention those browsers…

  • http://bipin.me bipin karmacharya

    Ya IE cannot be banished completely still I must need test on it so as to meet clients requirement. Programmers like us can’t exclude a major browsers like IE but can notify/convince clients that those outdated browsers are just backlog for development so need to be handled issues regarding at last.

  • http://www.dhaneshtk.com dini

    Bold move by jquery….
    Its baseless to say that some organization/people prefer not to update their browsers, if the issue was on updating the OS…this was true.

    to all those folks criticizing jquery’s move, must also learn from Microsoft business tactics is how they are dumping the XP.
    IE 9 wont work on XP.. Strange isn’t it?

  • James South

    So what does this article tell us that the various jQuery blog entries don’t?

    Bit of a space filler as far as I’m concerned. And what about the title? There’s nothing wrong with IE10 so why have you blanketed it with legacy versions. (IE9 isn’t too bad either). That is called link baiting and is frowned upon in professional circles.

    Have a good read through the source code some time and you’ll see there’s plenty of bug fixes in there for webkit and gecko also.

    All in all articles like this are disappointing. All they do is clutter up the web and make it difficult to find real useful information. Please, don’t try to defend it by claiming to aim for the lowest common denominator. The web industry is plagued by too many individuals who call themselves developers. They saturate the market, lowering the standard and make it more difficult for the people who actually care enough to study and read information at it’s source.

    • http://whiteboard.is Jonathan Cutrell

      James,

      This article is about learning from jQuery, an organization that has more industry insight than most developers do. It explains a strategy for dropping oldIE, and uses the strategy jQuery has employed as a roadmap.

      The reason any bug fixes are existent for webkit and gecko is because standards take time to implement; If you take a look through the jQuery articles you are suggesting, there are a lot of very specific fixes (we’re talking about orders of magnitude more) that are a result of things like borked event models. The fixes you are discussing will eventually be dropped as well, but the browsers you are referring to are following W3C standards.

      jQuery is dropping IE for many reasons, and those reasons are worth discussing. Gecko and Webkit differences are worth making specific provisions for because they are current browsers; oldIE is just that – old. “Cross-browser” is a relative term – as mentioned in the article, jQuery clearly doesn’t work well with IE 5 because, well, no one cares about IE5.

  • Pete

    Excellent article – thanks. However, I disagree with you on the following:

    “The reasons to support old IE have nothing to do with the extra effort that is expended by the developer.”

    Browser support is a business decision and businesses are there to make money. By dropping support for old IE they reduce their costs but they also reduce their potential audience. It’s a simple question of does the extra effort result in enough revenue being generated to justify the additional cost. Online businesses don’t care about the safety of their users, they just want to reduce costs and maximise revenue.

    To use an analogy – the owner of a toll road doesn’t care what kind of cars the people who drive on it use. She’s not about to stop someone driving some old banger to say “Hey you know you’d be much safer in a new car with better brakes and side impact protection and the rest. In fact I care so much about your safety that I’m not going to let you use my road until you get a new car.” That would be ludicrous. Her motivation is to make her road as accessible to as many different kinds of vehicles as possible, and the basis for her decision of whether to allow access to HGV lorries for example is determined by balancing the extra income with the subsequent costs of altering junctions or road resurfacing.

  • http://magdoub.com Mahmoud El-Magdoub

    Jquery was successful because of its cross browser compatibility!
    On my site http://wuzzuf.com 20 to 25% of the users use IE.

    I can’t take that risk, please support IE.

    • Preston

      Then I would argue that you are not doing enough to educate your users on the drawbacks of using an antiquated browser.

      If IE8 is that important to you, stick with legacy support.

      • http://www.adamcrooker.com AdamTheGr8

        The customer is always right – and alot of customers don’t care about our nerd speak. I completely agree – IE should die, or microso$ft should force updates – but its not going to happen for sometime. IE needs to be supported in some fashion (god I hate saying that)… but ‘educating’ your users is like trying to train the pigeons on power lines

  • http://wouterj.nl/ Wouter J

    Bad bad (and sad) choice of the jQuery team. jQuery’s success is the cross browsers dom manipulation and animation techniques. If jQuery drops that ‘cross browser’ raw JS can do the same thing in less code.

    This only makes me to use MooTools and DoJo more and more…

  • Jim in San Diego

    Old IE is bad? IE 9 is totally crap! I recently created a new web site for a client using standard WordPress tools. I tested it on Mac Safari, Chrome, Firefox and Opera. I tested on iOS Safari and Chrome. I tested it on PC Safari, Chrome and Firefox. NOT ONE ISSUE! Then I loaded up PC IE 9. The black background is gone leaving the site unreadable because of a white font. When you open one of the expanding, standard submenus it goes behind the HTML 5 animation in the body area – renduring navigation unusable.

    • http://seanja.info SeanJA

      If you had so many problems, perhaps it was your javascript/html/css that was “crap”? Alternatively you don’t understand how IE works at all… Maybe you should do some learning? Get a new job? Tell your clients to call me when something doesn’t work? I could always use some more money…

      • Brian

        No, crap. Nothing like watching the peanut gallery weigh in on concepts that strain the boundaries of their marginal abilities. It just feels like job security to me :-)

      • Bert

        Wow, what a bunch of arrogant jocks.

  • S Thomas

    jQuery is, of course, open source. So if folk aren’t happy without IE8 support they are free to fork it.

    But let’s remember, the problem here is Micro$oft. If they would put IE9 on XP we wouldn’t be having this conversation. Better still, how about IE10 on Win7 and XP ?

  • http://www.adamcrooker.com AdamTheGr8

    The solution is simple. Once IE is dropped with 2.0 – just a have a conditional statement linking to an older jquery library / or an off-shoot jquery specifically for IE. Front-end builders are going to have to accommodate for IE7 & 8 for years to come – themz the facts, I don’t like it – but hey, I don’t like mint cup cakes & my wife does, so you know what she bakes? Mint cup cakes. — man I need a better job.

  • http://moduscreate.com Dave

    ” If you don’t want to support old IE because it takes you longer to develop cross-browser code, then you also shouldn’t support mobile.”

    These two are not on in the same.

    • http://whiteboard.is Jonathan

      The point is simply that the time needed to invest isn’t the reason; the reason is the user.

      Take a situation where it takes the same amount of time to develop for mobile as it does for oldIE. The time spent developing for mobile is likely more valuable than time spent developing for oldIE.

      It makes sense to develop for mobile not because it’s easier to do (or takes less time) – in fact, it in all likelihood takes more time to accomodate for mobile. But it’s clearly the better decision to support mobile because of the user.

      • Gabriel

        Sorry to call it on you, but that argument is strictly B.S. (Bad science).

        It will always be better to support more users if we can, but supporting more platforms means more costs and compromises. So dropping support is first and foremost an economic decision, in a broad sense. If we are willing to increasingly support mobile despite the additional cost, it’s because the whole market is moving it that direction.

        So it’s not for «the user». The industry will do what it has to do to stay relevant, even it it means leaving a percentage of users abandoned or with second grade experiences. That’s what is all about. If it required no cost, we would support it till the last unfortunate user gave his last breath, and maybe even further. Let’s not be hypocritical.

  • http://www.tcbarrett.com TCBarrett

    This is an excellent decision.

    Applying more and more techniques to allow backward ‘compatibility’ for the ever growing feature set that modern browsers support will only introduce larger files, slower code and more opportunities for security vulnerabilities.

    Having a 1.9 library that is rock steady and pushes old IE to the max, whilst developing the 2.0 branch for the browsers of the future, will lay a clearer and firmer bed-rock for developers to build on.

    Brilliant.

  • Pantelis

    jQuery is just scared of loosing the CSS3-HTML5 race.

    Libraries that take advantage of all the new and fancy HTML5 features and APIs will soon start gainning ground among developers who say “I don’t care about IE”. And jQuery will be reduced to the old horse that still carries around checks for “addEventListener” support.

    So unless they drop all pre-ie9 legacy code they will loose developers who take advantage of the latest APIs. Do you know who those developers are? The ones that make the most impressive html5 demos.

    jQuery must have its name in the credits of those projects, and right now it does not. There is no need to. The framework that does that first – is a keeper! So starting anew is actually a good and a bit of desperate thing for them!

    Also, since the jQuery API will probably remain the same, projects could use both the 1.9X version when IE8- is detected, and the newer and faster 2.X versions for the rest browsers.

  • Erwin Schober

    Everyone on WinXP has the choice to use Firefox, Chrome, Safari, and Opera as well, so why stick on those old buggy, non-webstandard-campatible, insecure web browsers? I think it’s time to drop support to move web development on.. So in fact, I really like the idea of going dark for IE on Oct 26, 2012, see http://godarkforie.org/ 8)

  • http://www.devparadigm.com Noman

    Very Nice Article…..
    Hate below IE 8 versions….

    Thanks

  • http://nurbell.com Michael

    Seeing that my current project is church oriented, this will never work. Most of my users use ie8 and ie7. The best route would be to include old ie support in a separate script that the developer can call if he absolutely needs that support.

  • http://l2aelba.com l2aelba

    Still using IE ? Install Chrome frame !

    Thats what my site will saying

  • peterdrinnan

    My clients sometimes tell me I have to support older browsers because “some clients” may still be using them. I always think, what kind of client who’s worth 2 nickels would still be running Windows XP?

  • udhay

    This will be good to implement when the no of people using old IE is less in numbers.

  • B. Yu

    Learn to write, please, Jonathan Cutrell. You sound like a 10-year-old who found his first thesaurus. Horrible analogies, laughable purple prose, cliche after cliche; bad, bad stuff. Stick to coding.

    • Jarrod Mosen

      You sound like a great guy to hang out with.