Hi Kevin,

While I appreciate your concerns, I think you're operating under a  
mistaken notion of what "deprecation" means. The $.browser method  
still exists. The whole idea of deprecation is to allow a transition  
period:

cf. http://en.wikipedia.org/wiki/Deprecation
> Although deprecated features remain in the current version, their  
> use may raise warning messages recommending alternate practices, and  
> deprecation may indicate that the feature will be removed in the  
> future. Features are deprecated—rather than being removed—in order  
> to provide backward compatibility and give programmers using the  
> feature time to bring their code into compliance with the new  
> standard.


--Karl

____________
Karl Swedberg
www.englishrules.com
www.learningjquery.com




On Jan 25, 2009, at 6:57 PM, Kevin Dalman wrote:

>
> Feature detection is definately the way to go *when applicable*, so
> $.support is a great addition to jQuery.
>
> However, I question the decision to depricate $.browser so abruptly.
> This *forces* jQuery developers to create 'hacks' when feature
> detection is not the best solution. The discussion here about IE6 and
> bgIframe is a perfect example. We have top-notch Javascript developers
> who agree on what feature detection *hack* to use to solve this
> 'problem' that didn't exist before! How is this simplifying cross-
> browser coding?
>
> In my opinion, jQuery should provide the toolkit, but leave the
> *judgement* of when to use browser VS feature detection up to users.
> It sometimes is cleaner and more efficient to check for the browser/
> version, rather of checking for *10 different features*, when I KNOW
> all are unique to a specific browser/version. So using browser
> detection, I can often branch alternate code more efficiently. This
> should be *my choice*, and I wish jQuery would make BOTH options
> easier, rather than limit my options.
>
> I realize it is late in the game to complain about depricating
> $.browser. However, now that I'm testing v1.3, I see how many plugins
> - including my own - are now 'broken'. I am now forced to choose
> whether my plugins will support jQuery 1.2.6 OR 1.3 - I can't be
> compatible with both. Why am I in this position?
>
> I understand that things change, but the deprication of $.browser
> should have been clearly signalled to developers *at least one full
> version in advance*. And this should only have been done AFTER adding
> $.support, so that developers had an alternate utility. You have
> unintentionally made life difficult for jQuery developers by not
> proving a transition period where BOTH methods existed in jQuery. In
> other words, $.browser should have been 'scheduled for deprication' in
> v1.4 - not v1.3.
>
> Previous deprications were easy to fix - like $Elem.id() to $Elem.attr
> ("id"). But feature detection is not an exact replacement for browser
> detection when *multiple* browser-specific features are involved.
> Replacing browser detection with feature detection can require
> signficant changes to logic/flow, which in turn requires a lot of
> testing.
>
> To smooth the transition to 1.3, I HIGHLY RECOMMEND A COMPATIBILITY
> PACK. It doesn't need to include every depricated feature, but should
> include the $.browser utility. This will allow plugin developers to
> tell users who upgrade to v1.3 to include the v1.2 compatibility pack
> to maintain the function of their plugins. This will provide time for
> them to create a new version of the plugin compatible with v1.3 (which
> will NOT be backwards compatible to 1.2.6 if they use $.support).
>
> Even though "I" believe $.browser should not have been depricated at
> all, there is a more general principle here that I hope will be
> considered for future updates to jQuery...
>
> When a method is being *replaced* by a new method, BOTH methods should
> exist in jQuery for a suitable transition period. This allows
> developers to modify their code *in advance* of the version where the
> old method is depricated. You don't really have to support the old
> code, because if a developer is 'working on the code', they can easily
> switch to the new method instead.
>
> If you won't be creating an 'official' compatibility pack, then at a
> minimum I suggest you create a backwards compatible $.browser plug-in,
> and reference this on the main site. It could help speed the
> transition to v1.3 for those using plugins and custom code that
> reference $.browser. This way they can work with BOTH $.browser and
> $.support SIMULTANEOUSLY, making it much easier to transition their
> code step-by-step, as opposed to all-at-once.
>
> Thanks for indulging my long-winded rant. ;) It is intended as
> *constructive* criticism - I hope it came across that way.
>
> / Kevin Dalman
>
> On Jan 23, 10:18 am, John Resig <jere...@gmail.com> wrote:
>>
>> On another note: You mentioned that this would be a good way to  
>> detect
>> for IE 6. That is counter to everything that feature detection is
>> designed for. Feature detection is supposed to be used on a
>> case-by-case basis. If you need max-height then you use the
>> $.support.maxHeight property to use it or provide a workaround. Using
>> it to simply detect if IE 6 is being used is a huge assumption and is
>> likely to cause things to break.
>>
>> --John
>>
>> On Thu, Jan 22, 2009 at 2:14 PM, Eric Martin <emarti...@gmail.com>  
>> wrote:
>>
>>> In order to transition away from $.browser to $.support, people are
>>> going to want/need something to help identify IE6.
>>
>>> After a bit of research, I found one property that seems to work:
>>> elem.style.maxHeight. IE6 returns undefined.
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to