jQuery 2.0 will be released in "Early 2013". For some time (probably at least 6 months if not longer), jQuery 1.9 and 2.x will be perfectly API compatible. That means that the conditional comment approach will work with very little downside.
That gets us to summer or Fall 2013. At this point, there may be a release of jQuery 2.1. According to the blog post, it will probably contain few new features, and some speed improvements. It will almost certainly not break backwards API compatibility. At this point, you can upgrade to jQuery 2.1 for the speed improvements and simply not use the new features. The conditional comment approach will still work.
That gets us to Spring 2014. At this point, Microsoft will EOL Windows XP. It's frankly hard for me to imagine more than a tiny number of Windows XP users using IE8 at this point. There was a lot of similar-sounding concern about IE6, which has mercifully vanished. IE8 was at 30% last November; it is now down to 15%.
Even at this point, a jQuery 2.2 will likely not break API backwards compatibility. If IE8 clingers are more stubborn than we expect, we can always modify the strategy to be more aggressive about strict compatibility between the branches.
Unfortunately, many of us are still fighting the last war, where the cutting edge (IE6->IE7) was plodding and the slow upgrading tail was huge. It's time that we acknowledged that the ecosystem has changed: the slow upgrading tail grows smaller all the time, as the cutting edge absorbs more of the mindless browser population. At the same time, the pace of the cutting edge grows faster and faster. We aren't quite there yet, but we should prepare for a future that is not a simple clone of the 2004-2008 era of browser development.
It better grow pretty fast. By late 2012, jQuery will still be supporting a browser released in 2001 but by early 2013 it won't support a browser that was only replaced by MS in 2011.
Corporate America is not IE8's only domain. There are a lot of people who don't even know what a browser is. And IE8 was the default browser on Windows 7.
It's still a valid point, but comparing release dates with replacement dates just hurts the whole argument.
Probably the best way would have been: By late 2012, jQuery will still be supporting a browser released in 2001 but by early 2013 it won't support a browser that was released in 2009.
Hasn't Microsoft decided to auto-update IE? In that case, most people who don't know what a browser is will already be using IE9 on Windows 7 by 2013 or is there reason to believe otherwise?
They've had nearly 20 years to hop on the bandwagon and start understanding this crazy "internet" thing, and they haven't. A person that behind the times isn't going to buy anything on the internet anyway.
Do you actually have some data to back that up? Because all the data I've seen says the exact opposite to what you are saying.
I just had my largest ever budget approved by someone who uses IE8 at home in 1024x768 resolution. Not that this proves anything, but only goes to show that money is not always where you think it is.
Besides, visitors may interest you in ways other than making a sell.
Everyone keeps saying that, but I have never ever seen numbers to back it up.
Letting it all blow up in the user's face is not an option to me. And I do business with publicity agencies, they don't give a fuck about this stuff, as far as they know everyone owns the latest macbook.
No, that isn't that difficult.
Try to do an interactive webap.
Now we have segmentation in experience, help documentation, and support.
It's expensive as fuck.
1) 90% of our visual front-end bugs come from IE, sometimes only showing up in certain versions of IE7.
2) Our mac developers either need a license for VMware fusion or multiple boxes/VMs to test IE 7/8/9 which of course behave very differently. Maintaining these boxes, Windows licenses, and VMware licenses adds additional stress to IT, and the context switching for our developers is expensive.
3) For the ones that do run a VM, we've had to upgrade their RAM so they could run the app and the VM at the same time. RAM is cheap, but its still money for each new mac-based frontend developer we have.
4) A lot of our distributed application message passing is actually done through the browser via client-side javascript. This makes it even more of a pain to test since automating this is difficult and expensive (more setup code, and capybara tests), and needs to be run in each supported browser.
The point is - even that solution costs time and money.
Is there anywhere it fails to meet your teams needs? Genuinely curious if it's a product fail or a marketing problem.
Disclaimer: Used to work at Sauce Labs, not anymore.
(And your internal network is all wifi? Seriously? With designers shuffling big files around? Then you have bigger problems)
2) As others have said, there are "free" (of course, there's a cost in setting up) alternatives.
3) Indeed, we bumped every iMac RAM here as well. It's very cheap, though.
4) Well, not really. Any logical piece of software can (and should) be isolated to run by itself. That's how you unit test them. This is the kind of thing that you build once, test everywhere and stop worrying about it until you have to change the set of features.
My point is: why don't we all serve a lo-fi version of our apps based on the features present in the current agent? This way we can stop worrying about release numbers once and for all. If nothing, it usually result in a more stable code base.
2) Nothing is free if you are buying more hardware. Considering the costs of supporting Chrome/Firefox are very incremental, doing anything other than running the browser natively increases time and cost.
3) Cheap yes, but you have to do it, and its not like buying one piece of hardware. You have to do it for every person. Better, but not great. No one likes running VMs on their boxes because it still crawls, even with 2 cores and 8GB ram.
4) Don't disagree with you at all. I was against this design decision from the beginning but lost that battle. It doesn't change the fact that we need to test all of it.
2) The hardware issue was addressed in 3. Also, I don't follow, what do you mean by "the costs of supporting Chrome/Firefox are very incremental?"
3) That's a fallacy, actually. You're both proposing and confirming that "No one likes running VMs on their boxes because it still crawls". I, for one, run Windows XP VMs on my 4GB Core i3 iMac with no burden on the host OS at all. Some people might suffer with it? Yes, but some people could try tuning their setup for their needs.
4) Agreed.
Anyhow, we both know that the kernel of your argument is the first topic. I could convince you that the benefits outweigh the costs in 2, 3 and 4. But if your mindset is focused on giving the very same experience to every agent that can reach your app, or giving no experience at all; this argument is already over.
Also, saying that Apple does X or Y means absolutely nothing. Even if your company were almost exactly the same as Apple in every competitive aspect, nothing can assure that copying its culture would also lead you to a successful path. Actually, I believe history tells us the opposite.
Chrome frame takes about 30-45 sec to DL & install. Doesn't require a browser restart and doesn't require admin rights. Its incredibly slick. and then you're free to work with HTML5 and CSS3 in ie6+
So they're stuck with IE6, because that was the latest & greatest when large custom web-based applications really took off, so they're all certified for IE6 only and would have to be replaced at enormous cost before the users can be allowed to upgrade (or install chromeframe, for example).
It's a big barrier.
Where I work, we support browsers with over 2% of traffic, which means IE7,8,9, Chrome (latest), FF (latest and possibly 3.6 or something like that) and Safari (latest, IIRC, possibly latest + 1 older version.) The last 4 are largely the same, except for small bugs, and minor visual degradation is fine for the IEs. If your work requires you to support every browser, maybe you should start trying to build a case against that by making clear that requiring you to support every browser is a poor business decision.
But at some point, it becomes a zero-sum game. I believe this is what is happening with jquery: the amount of effort to support new features on older browsers (yes, that includes IE8) becomes less and less of an advantage. Hence their decision to compromise and support two versions of jquery, and have all or most of the new features implemented in the 2.0 version.
Or they'll go with your competitor.
Obviously, if your users are all home users, this probably isn't a factor. If you want people using your site from the office, it might be.
Now many of the things I do involve Canvas and SVG for information display. Try a map of the United States with a few layers of SVG with a few thousand datapoints. It simply won't happen on IE <= 9. You can try all the shims all day long. It just won't work.
Saying "it's not that hard" means you haven't tried anything more than CSS2 box model stuff.
OK, make your new website work in Netscape 4.
I'm not much of a car guy, but I like my car just fine. Someone who's really into cars and has test-driven hundreds of them could probably point out dozens of deficiencies in my car and the way I drive it that I'm totally oblivious to. He might not like my car at all, but I'm happy with it and see no reason to 'upgrade' it.
Same goes for any other product field, hobby, interest, etc. People who are more interested are better acquainted with what's available and the way to get the best experience, and people who are less interested are happy enough with their point of view and oblivious to any short-comings.
However, if forced, technology departments are quite capable of installing Chrome or Firefox. I don't feel sorry for corporations who have IE[6-8] only apps. I was there 10 years ago when people said that it only had to run in IE, when I said we should test in Firefox too.
I do have to say that my impression from comments that some devs don't actually comprehend the scope of the trouble for some of these companies. On the surface you might think it's just a lazy IT department who won't upgrade the browsers. But really the situation is that companies built their internal infrastructure using things like ActiveX components for IE and these systems are probably more like desktop apps than web-based apps. They use all of the old IE components to interact with the desktop and do things that may still not even be possible with a regular web-based app. So it is not necessarily that they're surfing the web with IE6 because they're too lazy to upgrade the browsers or their javascript code - rather they are stuck with it because they have huge infrastructure that depends on those old components to run. It's hard to actually understand that now, but at the time 15 years ago it was really cutting edge stuff and MS managed to get some serious vendor lock-in.
And certification would need to happen again before any subsequent browser upgrades.
So I hate supporting IE6, but I'm working in health care, so I'm pretty sure that I'm going to be supporting IE6 for a while yet.
Yes, I realize corporate settings can be inflexible enough that it won't happen in some corporations, but isn't it a good thing that corporate IT get more pressure to accomodate?
doesnt chrome work on xp?
What time limit? The blog post says jQuery 1.9 will be supported even after 2.0 is released, and that the two APIs will be the same.
I'd also like to point out that this concern only comes into play 2 years from now. We are not intending to drop support for oldIE forever, but we do want to make jQuery smaller and as efficient as possible in the newer browsers, and leaving all the oldIE code in as we progress past these browsers wastes time.
What jQuery 2.1 feature can't you live without?
Don't forget that IE 8 is the last version XP will get and XP is going to be out there for a long time yet (sadly), especially in corporate environments. Effectively (as far as IE only environments are concerned) JQuery has just set a time limit on proper web access for an entire OS.