Does this mean that new features will be based on feature detection, or that old features will be rewritten properly?
Originally Posted by Jamie Avins
Let me again point out some of the problems with sniffing:
based codepaths are going to fail in existing versions of ExtJs when IE9 comes as Ext will not recognize the browser.
if(Ext.isIE && !Ext.isIE8)
This mean that all sites that are built with e.g Ext 3.2.1 will/might break when used with IE9 as Ext believes that it is IE6
isIE8 = isIE && check(/msie 8/)
(This is seriously bad code!) - hopefully IE9 will be very different from IE6.
isIE6 = isIE && !isIE7 && !isIE8
Having to manually revisit all such branches to see if a check should be made for a never version is extremely prone to error (and not to say unnecessary with feature detection), something that could be seen with 3.2 as its DragDropMgr did not take into account that IE8 works differently from IE6 and so would introduce strange and unexpected behavior (not sure if this has been fixed with 3.2.1).
The point is, UA sniffing is bad for everybody
- the ExtJS developers as these develop according to what they believe a specific browser can do, instead of what the current actually can do
- the developers that use ExtJS as these are forced to upgrade their sites as new browsers enters the marked, unless willing to let the sites break in these. This is not a valid approach as not everyone can take that cost, and quite frankly, they shouldn't have to
- the users as they will see applications that worked in older browser break when viewed in newer ones
So to restate the question, will we see a complete rewrite, or is it only new features that will use feature detection?