jQuery 2.0 Will Drop Support For IE 6, 7, 8 250
benfrog writes "The developers of jQuery recently announced in a blog entry that jQuery 2.0 will drop support for legacy versions of Internet Explorer. The release will come in parallel with version 1.9, however, which will include support for older versions of IE. The versions will offer full API compatibility, but 2.0 will 'benefit from a faster implementation that doesn't have to rely on legacy compatibility hacks.'"
Like (Score:5, Insightful)
Re:Like (Score:5, Informative)
Re: (Score:3)
This is fine for 1.9/2.0 but what happens when 2.1 and 2.2 come out? The API's will diverge.
I hope 1.9 stays api compatible, but I would doubt it.
Re: (Score:3, Interesting)
So we might end up with some jQuery functionality silently being disabled in legacy versions of IE too. Big whoop.
Re: (Score:2)
Once a version of jQuery 2.x comes out with an API which isn't compatible with 1.9, IE8 better be long forgotten.
Re: (Score:2)
jQuery comes out with new API's all the time.. Remember live was deprecated by delegate, then by on... this stuff seems to happen *EVERY* single version.
Re:Like (Score:5, Informative)
But .delegate(), .on() and .live() all still work with recent versions of jQuery, so your old code still runs with newer versions of the library. New features being introduced is not bad. The pain starts when old features are dropped.
Re: (Score:2)
XP (and therefore IE6/7/8) is not going to be with us forever, either.
Re: (Score:2)
What are you specifically worried about? Dell is still using jQuery 1.2 on their site from 2007, and it seems to work. So in 2014, something will break in the (supported) 1.9 version that the jQuery team refuses to fix, but you can't upgrade to 2.1? Can you say what that something might be?
Re: (Score:2)
And this is the reason I don't use jQuery. When something breaks down on a newer browser and you have to manually patch your JS as fast as possible, you've better patch your code. Patching jQuery might prove to be quite complicated depending on the fix.
Not mentioning that support for legacy browsers is exactly what got jQuery where it is in the first place.
Methinks some people are shooting themselves in the foot.
Re: (Score:2)
You don't appear to be thinking clearly about this.
If my site uses jQuery 2, and I server 1.9 to IE users, then I want to upgrade to jQuery 2.1, or 2.2, i'm stuck because jQuery 1.9 may not be compatible with 2.1 or 2.2 or whatever later version i'm using. I'm then forced to continue to use jQuery 2 because it's compatible with 1.9.
Re: (Score:2)
Sorry but I don't like having to write a website 6 times over. One for each IE 6, 7, 8, 9, 10 then Firefox and Chrome. Writing a site now and once I'm done go back and add CSS tweaks for special IE is already a pain in the ass.
Re:Like (Score:5, Insightful)
Holy moley. I might be saying what others say but please, for the love of everything good, use conditional comments.
They've been around since IE5. You will love them.
Re: (Score:2)
IE9 is better, albeit rapidly falling behind the curve.
Re:Like (Score:5, Informative)
with a few lines of PHP (or some equivalent back-end language) you can have a look at the user's browser USERAGENT string, figure out if it's an MSIE browser or not and serve the preferable version of jQuery... 1.9 for legacy IE, 2.0 for IE9 and for standards compliant browsers.
Or do it with HTML comments (this actually works):
<!--[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]-->
Less code. Also you've offloaded the CPU processing from your server to the user's browser.
This was in the article by the way. . . . Oh . . . nevermind.
Re: (Score:3)
Yes, it does. If you look closely the first script tag is in a comment as far as non-IE browsers are concerned whereas the second script tag is outside the comments and gets parsed.
Comment removed (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
You see the bit where it says "full API compatibility"? ...
This is the same unicorn as "platform independent". Many people talk about, but nobody really ever saw it.
Re: (Score:3)
Or use Modernizr's browser identification.
Re:Like (Score:4, Insightful)
Plenty of tards lead kick ass lives.
Re: (Score:2)
Sadly. Damn IE slowing down even non-IE users!
Even more sadly, this is not news. IE has been effectively sabotaging the non-IE community for years. The need to specifically code for IE6 and IE7 due to their crappy compliance with web standards has swallowed immense amounts of global developer effort, which could otherwise have been invested in improving the interwebs for everyone.
Just die already.
Re: (Score:2)
Given most (not all) web development makes things worse, that seems like a good thing.
Re: (Score:2)
While normally useragent-based feature detection is a bad thing, it seems like one could selectively insert a script tag for either jQuery 1.9 or jQuery 2.0 (they are supposed to be API-compatible, yes?) depending on whether or not the user is using a legacy IE, without any performance hiccup.
Re: (Score:3)
This [microsoft.com] is a far better way since anything non-IE pretending to be IE will just ignore these. Web designers have been using these for years to load special CSS workarounds for all the bugs in IE.
Re: (Score:2)
I hear the people saying that, but what would you do to make the page load either one or the other jQuery, but not both? Loading two jQuery instances causes all sorts of problems if not handled well.
Having done web development for many years, believe me, I'm very familiar with all variety of IE-handling hacks. At the moment I can't think of a way to conditionally load jQuery 2.0 if and only if not using legacy IE, and load jQuery 1.9 if and only if using non-legacy IE or non-IE, using IE conditional comme
Re: (Score:2)
Conditional comments do exactly that. There is an example in the jQuery blog post.
Conditional comments work both ways (Score:2)
They are called Downlevel-revealed Conditional Comments, and they are described in the linked article.
<![if !IE]>Seen by everything but IE.<![endif]><!--[if IE]>Seen only by IE.<![endif]-->
You're welcome.
Re:Like (Score:4, Insightful)
If you look at a set of the available conditional comments in an editor with proper syntax highlighting, it'll become obvious immediately how they work: everything that is targeted at IE (or specific versions thereof) is technically inside an HTML comment and ignored by other browsers; IE parses these comments and, in the presence of conditional directives it determines (by version) whether to treat them as if outside an HTML comment. Everything that targets non-IE browsers is outside of a comment, but IE will treat it as a comment.
This is a comment, unless loaded in IE versions 8 and below:
<!--[if lte IE 8]><script src="/path/to/jquery19.js"><![endif]-->
This is a comment, unless loaded in IE versions 9 and above:
<!--[if gte IE 9]><script src="/path/to/jquery20.js"><![endif]-->
This is not a comment, unless loaded in IE:
<!--[if !IE]><!--><script src="/path/to/jquery20.js"><!-- <![endif]-->
Conditionally include 1.9/2.0 (Score:2)
True, Walmart.com will have IE 6/7/8 visitors for years to come, but there are plenty of places where someone might be using jQuery but not need IE 6/7/8 support. It could be a cutting-edge public web site, a desktop app using an embedded HTML rendering engine, or a mobile app where oldIE doesn't matter. You can either use jQuery 1.9 for now, or use graceful degradation to give those people a really basic experience and a nudge to upgrade.
Re: (Score:2)
IE8 = "latest" version for many (Score:5, Insightful)
I can see dropping IE6 & IE7, because there's no sound reason for anyone to still be using them. But IE8 is the terminal version of IE for Windows XP, which remains one of the most widely-used operating systems on the planet. It's not going to go away just because someone doesn't want to support it any more.
Re:IE8 = "latest" version for many (Score:5, Interesting)
The problem is that IE8 handles Javascript in much the same non-standard way als IE6 & IE7. If a library such as jQuery includes support for IE8, it's supporting IE6 & IE7 as well.
Re:IE8 = "latest" version for many (Score:5, Informative)
However my organization just Upgraded to IE 8.
There isn't any plan to be going to 9 in the near future as there are too apps that have issues with following Open Standards.
Re: (Score:3)
That's why the jQuery team is going to provide security fixes for 1.9 for a while.
Re: (Score:2)
Chrome + IEtab = solved
configure IETab to use IE when chrome hits one of your ass-backwards web apps.
Re: (Score:2)
How exactly does one install that on a terminal server session where everything is locked down? And yes, I'm a developer not a member of the admin staff.
Re:IE8 = "latest" version for many (Score:4, Informative)
Re: (Score:2)
What if a developer needs a (standard) feature that a browser doesn't support?
Re: (Score:3)
Then that feature doesn't work in that browser. Doesn't mean the rest of your web application has to fall apart.
Re: (Score:2)
Website? Missing the point. The problems in business are typically "web applications" not websites - either internal custom applications that they have lost the source for, the developers left, or they use technologies nobody has heard of, or enterprise apps that were purchased long ago and upgrade paths are too expensive or disruptive.
Hundreds of staff where I work were forced to stick with IE7 until earlier this year because a single app used by a handful of users in HR wouldn't work on IE8. On thin clien
Re:IE8 = "latest" version for many (Score:5, Informative)
You can use conditional comments to load the older version of JQuery for IE6, 7 and 8 so it's not as bad as it seems. Web designers have been doing this for years to hack around Microsoft's incompetence,
Re: (Score:2, Insightful)
There are already issues with Jquery and IE 6 and 7. Take
Re:IE8 = "latest" version for many (Score:4, Insightful)
Those grannies are paying your salary (well, paying the typical web developer's salary, may not apply personaly to you), are you sure you want them to go away?
Re: (Score:2)
"IE 8 will go away... if every website in the world stopped supporting it."
Clearly false. As you noted (earlier in your exercise in circular illogic), there's a contingent of people who will not upgrade just because you want them to. They will (rightly or wrongly) just blame your crappy webapp for not working properly, and keep using the same software.
Re:IE8 = "latest" version for many (Score:5, Informative)
The first part of your comment is true, 10 is dropping them. The second part isn't - conditional comments can be written either to exclude or include all browsers that don't support them (with comment syntax or tag syntax). When using comment syntax IE6-9 can execute a piece of code that all other browsers see as a comment.
Re: (Score:2)
Not the statistics I see on statcounter for the US. China is an outliner that gives a false impression on netmarketshare/appliances etc because they only run pirated software over there. Unless you make Mandrin websites that shouldn't matter.
Windows 7 in the US and Europe already hit 50% and XP is dying fast. There were barely be double digit marketshare by the end of next year. It is time to move on and start supporting newer standards. Look at this way? The iphone came out in 2007 with css and html 5 supp
Re: (Score:3)
The question of when Windows XP 1.0 was released is irrelevant, because it was the "current" product for many years after that. The more important landmark is when a replacement (Vista) became available, and more to the point when an attractive replacement (Win7) became available. That's much more recent.
Re: (Score:3)
Another possibility is to use jquery 2 for all other browsers and jquery 1.9 for ie 10 via conditional comments.
Comment removed (Score:4, Informative)
Re: (Score:2)
I'm forced to use IE8 at the office (thin client crap for internet access) and already there are some sites I cannot use, and others that degrade to basic versions. The sooner this happens the better IMO - the more sites that do not work in IE8 the faster my IT department will be forced to realise that they have to upgrade from Win2003 server and/or install a different browser. Oh, and that really, Internet Explorer isn't "secure" just because it offers an illusion of security lockdown...
They seem to be missing the point... (Score:2)
I thought a large part of the appeal of jQuery was that it allowed you to avoid writing the crufty legacy browser code that you would normally have to re-implement for every application. If they no longer offer that then what is the point of using it?
Use 1.9 until 2014-04-08 (Score:3)
Re: (Score:2)
The alternative is sticking with jQuery 1.9 until April 8, 2014 [microsoft.com], and then flipping to jQuery 2.0.
Not necessarily. Just because MS doesn't officially support it anymore, doesn't mean it's going to just go away. Unfortunately, in our market (web-based MLS software), we're going to have to support these legacy versions long after MS ditches them.
Re: (Score:2)
Not necessarily. Just because MS doesn't officially support it anymore, doesn't mean it's going to just go away. Unfortunately, in our market (web-based MLS software), we're going to have to support these legacy versions long after MS ditches them.
Agreed. In fact, I think there's at least a 25%-50% chance that Windows XP will never go away. What I think will happen is that a substantial number of large corporations and state/local/national governments will still be on WinXP in 2014, and unable to migrate
Viewing any web site with IE 8 is unsafe (Score:2)
Just because MS doesn't officially support it anymore, doesn't mean it's going to just go away.
Even if Windows XP itself doesn't go away, old IE will if web sites start putting up wording like this: "As of April of 2014, Internet Explorer for Windows XP is no longer supported by Microsoft. It has known security defects that Microsoft will never fix, through which someone could break into your computer. Viewing any web site with Internet Explorer for Windows XP is potentially not safe. For your safety, we recommend using Firefox, SeaMonkey, Chrome, Safari, or Opera software to browse the web."
Re: (Score:2)
Most sites don't care about governments and large organizations, and target individual customers directly.
High-profile computer intrusions (Score:2)
If governments and other organizations aren't willing to move beyond XP
Then their IT departments are acting as if they want proverbial egg on their face. The first post-EOL exploit for XP will result in high-profile computer intrusions at such organizations.
Re: (Score:2)
No, the alternative is just to keep on moving forward and forget about old versions of IE. Simply don't support them. When enough websites do this, the IE-users will figure out the internet is broken with their browser and move to something which does work.
It's a prisoner's dilemma (Score:2)
When enough websites do this, the IE-users will figure out the internet is broken with their browser
But if not enough web sites do this, IE users will defect from web sites that no longer support IE to web sites that advertise that they still support IE. It's a prisoner's dilemma [wikipedia.org].
IE Version Code Breakdown? (Score:3)
Does anyone here have enough knowledge of the JQuery codebase to say how the IE-specific cruft breaks down by version?
IE6 is a monstrosity; that's pretty much a given, and IE7 isn't great either. I could see dropping support for both of those being a big win in terms of cleaning up the codebase. That said, how much do they gain by dropping IE8 as well? It was only released 3 years ago.
Re:IE Version Code Breakdown? (Score:5, Informative)
The "promoted reader comment" in the linked Ars article [arstechnica.com] actually answers exactly that:
Drizzt321 wrote:
Wow, removing support for IE8? That's a really bold move. I can see IE6 & 7, those are rather old and should be deprecated and people should be really encouraged to move to newer versions.
John Resig has said in interviews that most of the IE6 and IE7 code is needed for IE8 as well. While IE8 has far better layout and CSS engine evidently it still has pretty bad DOM API. Resig pointed out that dropping support for IE6 and IE7 would have very little impact on the size and complexity of the library unless they drop IE8 as well
Re:IE Version Code Breakdown? (Score:5, Informative)
As far as bugs and quirks go, a lot of the ones in IE6 and IE7 are also present in IE8. In specific, things like eating HTML5 tags, the lack of true opacity support and the proprietary IE event model that used attachEvent instead of addEventListener. There's quite a bit of code in jQuery to deal with IE event issues, for example the lack of a bubbling change event. IE8 managed to plug some memory leaks and wasn't as bizarre with the "attroperties" issue as IE7 was, but they still have a lot of sins in common.
Re: (Score:2)
IE8's big change was all the brand-new layout engine (thus the fairly rapid development in IE9/10, coming from nowhere to being right up there with CSS Level 3 module support). It changed relatively little elsewhere.
So it's like Python 3 (Score:4, Insightful)
Re: (Score:2)
The Python installers on Windows install to (by default) C:\Python$MAJOR$MINOR (Python 2.7 installs to C:\Python27, Python 3.2 installs to C:\Python32). For scripts that require a certain version of Python, you may have to open it with the proper version yourself, because (obviously) .py files can only be associated with one program at a time. But for scripts made to be run by end-users, (assuming they don
EXE wrappers and third-party libraries (Score:2)
But for scripts made to be run by end-users, (assuming they don't ship their own Python runtime in the first place) a simple EXE wrapper can use the right interpreter. What part of this isn't easy?
That depends. Is there an automated tool to create and deploy such EXE wrappers yet?
Also, many developers make things compatible with both, which is made much easier with 2to3
And harder when your program relies on third-party libraries that have not yet been ported to 3.
Re: (Score:2)
No, adoption of Python 3 is limited by library support, not install base. Libraries need to be rewritten for Python 3 and some major ones (e.g. Django) are not yet ready. In this case, jQuery 1.9 and 2.0 will have the same API, but 2.0 will not work on older versions of IE in order to optimize for speed. Your comment about Windows XP is apt; this is akin to software dropping support for older OS versions.
Missing the point (Score:5, Informative)
All, one of the big reasons for this move is to provide a cleaner, smaller, faster version of jQuery to apps dedicated to a given platform, such as iOS apps running as HTML5 shells. These applications know their "browser" environment, and thus can benefit from lack of IE support with no cost in terms of audience size.
No one who has a general-public website should use 2.0 for years to come, but if you're developing a quickie Android app, or one of the dozen or so javascript-based desktop shells, etc, then this move is for you.
IE6 and 7? (Score:5, Insightful)
Find, finally kill the bastards. But 8?! This is the last IE available for XP, which is still widely used in companys....
Good thing (Score:3)
I think it's a good thing. It might even be better if first IE6 and IE7 support was dropped, and IE8 support later, but that might be a lot of work.
I axpect that for the first few years jQuery 1.9 will be the most used version, but you can afcourse load jQuery 2.0 on newer browsers, and only load 1.9 with conditional comments.
I'm wondering how the big CMSs will handle this. Will Wordpress come with 2 versions for a few years?
Re: (Score:2)
More than likely, it's the same code for IE6/7/8 that they're dropping. If you leave it for 8, you may as well leave 6 and 7, because you don't gain much.
Re: (Score:2)
Too bad I am working on a corporate oriented site. I can imagine IE 6 and 7 will be over 50% usage by the biggest customers who spend the most, even if they are a small minority overall.
I should not have to be reading books on IE 6 hacks in 2012.
Re: (Score:2)
Lucky you. Not everyone works in that kind of environment. Many of us sell software to clients, and they won't even consider us if it doesn't support IE6. You can't even get to the point of arguing against it, it's in the RFP. You don't meet it, you don't get the job. You don't even get to argue your case.
Your argument is naÃve, and simplistic. Most people who bring their potential client a bill that's 20-50% more will simply get fired and someone that will do it for the regular price will get hi
Re: (Score:2)
FYI, anyone that thinks IE6 doesn't support the correct box model is incompetent.
IE6 fully supports the correct box model, and if it's not doing that for you, it's because you're doing something to get quirks mode rendering. If you don't know why that is, you are incompetent to be doing your job. Seriously.
This won't really affect anything. (Score:2, Insightful)
All you need is some back-end code to examine the user's browser's "useragent" string and figure out which version of jQuery to serve.
<?php
preg_match( '/MSIE ([0-9\.]+)/', $_SERVER[ 'HTTP_USER_AGENT' ], $matches );
if ( ( count( $matches ) == 2 ) && ( floatval( $matches[ 1 ] ) <
Re: (Score:2)
What's the point in using 2.0 in the first place if 1.9 will do? Obviously 2.0 will have some functionality or fixes 1.9 won't. If you really want to do what you suggest, you would still have two code paths in your system, one for 2.0 and one for 1.9 (or possibly one for 2.0 and then gracefully degrade when there is no 2.0).
Re: (Score:3)
This is the web we're talking about. Especially with so many people on mobiles these days, bandwidth is limited so size matters. Even is 2.0 offers exactly the same features as 1.9, 2.0 will be a heck of a lot smaller, meaning faster downloading, faster loading, faster parsing. Especially on phones, that's not just a nice thing to have, it's a necessity.
Re: (Score:2)
If you don't use a library, you have to create your own selectors, event handlers, ajax calls etc. It just moves code from the library to your own script, it doesn't reduce the overall size of the code unless you don't really use the library that much.
Re: (Score:2)
Speed.
Re: (Score:2)
What's the point in using 2.0 in the first place if 1.9 will do?
If you'll read TFA, they're doing it so that jQuery will be much faster and more modular. If you just use 1.9, you're punishing everyone who has a sane browser. Their code will run slower so that it won't break for the drones using ancient versions of IE. By offering both and choosing server side, you have the speed and support of the new versions and still support grandpa's Windows XP computer. Eventually Windows XP will die a long deserved death and version 1.9 can go with it.
Re: (Score:2)
Dropping IE8 support at this time is unacceptable (Score:3)
I don't have any problem with dropping support for IE6 and IE7. These should have been phased out years ago, and their only reasonable present-day use is not as web browsers, but as legacy applications platforms for badly coded ActiveX apps.
But IE8? For users with Windows XP, this is as high as you can go. IE9 is not supported. And WinXP continues to be supported by Microsoft through the end of 2014, and is still in very widespread use among businesses, and to a lesser but still significant extent among home users.
I wish IE8 would go away (or more specifically, that Microsoft would take the time to backport IE9 to WinXP). Its continued persistence means a lot of css3pie hacks in the website I maintain, which are necessary to get rounded corners and drop shadows in this outdated browser. But it won't go away just because Google wants it to. And saying to use Firefox or Chrome instead of IE is not going to fly in most workplaces, which rely heavily on Internet Explorer's integration with Active Directory and its support for Group Policy. As far behind as IE falls in other categories, no third-party browser matches its abilities on these vital business fronts.
Dewey (Score:3)
Legacy Branching? (Score:3)
jQuery native support (Score:3)
This is a bit off of the main topic... but any idea why none of the browser vendors have implemented native support for jQuery in their JavaScript engines? It seems to me that this would be an easy way to improve performance, considering how many websites use it, and considering that implementing native support for its API would remove the need to go through 2 layers of interpreters.
hmm (Score:2)
one word (Score:2)
Good.
Why? (Score:2)
I'm having trouble understanding the "speed" argument. Couldn't you provide different code paths for different browser versions and still maintain full performance?
I'm sure this means the size of the library is increased some but so what? aint that what cache is for?
Seems a little odd considering one of the major highlights/selling points was browser compatibility. Write once without worries of platform specific hacks. If you adopt the position of getting rid of old browsers much of those same historical
Re: (Score:2)
Gone is the big reason for jQuery. So all the added bloat keeps it afloat while we should be bitching about official support for document.getElementBySelector().
I always wondered why jQuery (last I read the source) didn't implement multiple functions and then dynamically reference the proper function after a test? That caused a minor speed gain for my own compatibility code for quite a long time now.
Of course their other features that are kind of fun do not help matters.
Re: (Score:2)
I'm sure this means the size of the library is increased some but so what? aint that what cache is for?
Mobile is the main reason. Obviously when bandwidth is tight, size matters a lot. And on top of that, phone browsers typically are a lot worse at effectively caching scripts than their desktop counterparts.
Good (Score:2)
Bad move jquery (Score:2)
Re: (Score:3)
Yawn. Why is it that nerds who generally hate typing are so hung up on reinventing the wheel all the time just to meet some meaningless code purity standard. You might not have deadlines but I do and anything that speeds my work up is a good thing. Shit code in pure Javascript abounds; JQuery has nothing to do with the quality of the developer.
Re: (Score:3)
Because looking at code littered with var e = document.getElementById('stuff'); is just so much more elegant and non-shit-looking than $('#stuff')..
Re: (Score:3)
And javascript itself isn't a crutch for people who can't be bothered to learn other languages?
Re: (Score:2)
And why do the popular mobile platforms support javascript only?
Re: (Score:2)
Windows XP doesn't have to die for IE8 to go away. Every other browsers' latest version runs great on XP.
Re: (Score:2)
-rw-r--r-- 1 xxxxx staff 85260 Apr 30 10:28 jquery-1.5.1.min.js
If you're building any sort of complicated website these days, you will use alot of jQuery.. Do you really want to go write a custom ajax handler? why bother..
Plus, using jQuery allows you to leverage tons of other pre-written libraries which were all written on top of jQuery and will avoid alot of cross-browser bugs and repeated code..
Re: (Score:2)
I think it would be better if they continued to support IE in their main branch, but also offer a "lite" version without IE support.
They did just that. The "lite" version is called 1.9, the full one is called 2.0.