<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: MooTools Call to Upgrade</title>
	<atom:link href="http://ajaxian.com/archives/mootools-call-to-upgrade/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/mootools-call-to-upgrade</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Sun, 14 Mar 2010 06:53:59 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: wuwei</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276399</link>
		<dc:creator>wuwei</dc:creator>
		<pubDate>Tue, 10 Nov 2009 04:02:49 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276399</guid>
		<description>One day in Aprila man standing in the streets of New York, pulled out a brick of about two big mobile phone, and began to talk. This person is the inventor of mobile phones Martin.&lt;a href=&quot;http://www.weddingnova.com/product/Empire-Spagetti-Organza-Wedding-Dress-21285.html&quot; rel=&quot;nofollow&quot;&gt;Empire Spagetti Organza Wedding Dress&lt;/a&gt; Library Park - when he was Motorola&#039;s engineering and technical personnel. This was one the world&#039;s first&lt;a href=&quot;http://www.weddingnova.com/product/Mermaid-Allover-Lace-Satin-Wedding-Dress-20379.html&quot; rel=&quot;nofollow&quot;&gt;Mermaid Allover Lace Satin Wedding Dress&lt;/a&gt; mobile phone.the U.S. Federal Communications Commission (FCC) to &lt;a href=&quot;http://www.weddingnova.com/category/Bridesmaid-Dresses-802-1.html&quot; rel=&quot;nofollow&quot;&gt;inexpensive bridesmaid dresses&lt;/a&gt;determine the land mobile telephone communications,and high-capacity cellular mobile phone spectrum for mobile phones commercially ready. In 1979, Japan opened the world&#039;s first cellular &lt;a href=&quot;http://www.weddingnova.com/category/Column-Wedding-Dresses-809-1.html&quot; rel=&quot;nofollow&quot;&gt;column wedding dresses&lt;/a&gt;telephone network. In 1982 established the European GSM (Mobile Communications Special Section) in the first in the modern sense could be commercially available mobile phone was born.&lt;a href=&quot;http://www.weddingnova.com/product/Empire-Pleated-Satin-Chiffon-Wedding-Dress-20290.html&quot; rel=&quot;nofollow&quot;&gt;Empire Pleated Satin Chiffon Wedding Dress&lt;/a&gt;It is the power supply and antenna placed in a box, weighing about 3 kg.Shape close to the modern mobile phone, you was born in 1987. Its weight is still about 750 grams, with today&#039;s cell phone weighs just 60 grams compared to, like a big brick.&lt;a href=&quot;http://www.weddingnova.com/&quot; rel=&quot;nofollow&quot;&gt;wedding dress&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>One day in Aprila man standing in the streets of New York, pulled out a brick of about two big mobile phone, and began to talk. This person is the inventor of mobile phones Martin.<a href="http://www.weddingnova.com/product/Empire-Spagetti-Organza-Wedding-Dress-21285.html" rel="nofollow">Empire Spagetti Organza Wedding Dress</a> Library Park &#8211; when he was Motorola&#8217;s engineering and technical personnel. This was one the world&#8217;s first<a href="http://www.weddingnova.com/product/Mermaid-Allover-Lace-Satin-Wedding-Dress-20379.html" rel="nofollow">Mermaid Allover Lace Satin Wedding Dress</a> mobile phone.the U.S. Federal Communications Commission (FCC) to <a href="http://www.weddingnova.com/category/Bridesmaid-Dresses-802-1.html" rel="nofollow">inexpensive bridesmaid dresses</a>determine the land mobile telephone communications,and high-capacity cellular mobile phone spectrum for mobile phones commercially ready. In 1979, Japan opened the world&#8217;s first cellular <a href="http://www.weddingnova.com/category/Column-Wedding-Dresses-809-1.html" rel="nofollow">column wedding dresses</a>telephone network. In 1982 established the European GSM (Mobile Communications Special Section) in the first in the modern sense could be commercially available mobile phone was born.<a href="http://www.weddingnova.com/product/Empire-Pleated-Satin-Chiffon-Wedding-Dress-20290.html" rel="nofollow">Empire Pleated Satin Chiffon Wedding Dress</a>It is the power supply and antenna placed in a box, weighing about 3 kg.Shape close to the modern mobile phone, you was born in 1987. Its weight is still about 750 grams, with today&#8217;s cell phone weighs just 60 grams compared to, like a big brick.<a href="http://www.weddingnova.com/" rel="nofollow">wedding dress</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anewton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276372</link>
		<dc:creator>anewton</dc:creator>
		<pubDate>Fri, 06 Nov 2009 19:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276372</guid>
		<description>@timdown I agree that using methods in the manner we were is a bad practice; we are totally owning up to that bad decision.
.
&quot;If your code is going to break if a single browser manufacturer changes or removes a single non-standard feature...&quot; I&#039;m saying that at some point the API of JavaScript will change in some way that breaks something somewhere, whether you write it or I do. The browser vendors themselves are part of the problem here; they introduce non-standard APIs all the time.
.
Show me ANY 10 year old technology that still works the way it did. The web is not always 100% backwards compatible. I can&#039;t even imagine what the web will be 10 years from now. What if browsers implement technologies that completely obviate the need for Flash? And after a while Adobe stops pushing it, so that a significant portion of users just don&#039;t have it? That&#039;s ALREADY happening with the mobile web. So suddenly sites that were built 3 or 4 years ago that used Flash for navigation or whatever don&#039;t work. Now, you nor I built sites like that in all likelihood (I didn&#039;t at least), but many did.
.
My point is that modern development practices involved a LOT of programming on the client in a runtime environment that changes a lot. Even if you didn&#039;t use a framework and followed standards, at some time - whether it&#039;s 5, 10, or 30 years from now - the web will be something different.
.
Should we (MooTools) have abandoned this practice sooner or not used it at all? Yeah, and we&#039;re copping to it. But the point here is that it&#039;s a simple fix; you don&#039;t have to go rewrite anything. Just download it and deploy it.</description>
		<content:encoded><![CDATA[<p>@timdown I agree that using methods in the manner we were is a bad practice; we are totally owning up to that bad decision.<br />
.<br />
&#8220;If your code is going to break if a single browser manufacturer changes or removes a single non-standard feature&#8230;&#8221; I&#8217;m saying that at some point the API of JavaScript will change in some way that breaks something somewhere, whether you write it or I do. The browser vendors themselves are part of the problem here; they introduce non-standard APIs all the time.<br />
.<br />
Show me ANY 10 year old technology that still works the way it did. The web is not always 100% backwards compatible. I can&#8217;t even imagine what the web will be 10 years from now. What if browsers implement technologies that completely obviate the need for Flash? And after a while Adobe stops pushing it, so that a significant portion of users just don&#8217;t have it? That&#8217;s ALREADY happening with the mobile web. So suddenly sites that were built 3 or 4 years ago that used Flash for navigation or whatever don&#8217;t work. Now, you nor I built sites like that in all likelihood (I didn&#8217;t at least), but many did.<br />
.<br />
My point is that modern development practices involved a LOT of programming on the client in a runtime environment that changes a lot. Even if you didn&#8217;t use a framework and followed standards, at some time &#8211; whether it&#8217;s 5, 10, or 30 years from now &#8211; the web will be something different.<br />
.<br />
Should we (MooTools) have abandoned this practice sooner or not used it at all? Yeah, and we&#8217;re copping to it. But the point here is that it&#8217;s a simple fix; you don&#8217;t have to go rewrite anything. Just download it and deploy it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: timdown</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276358</link>
		<dc:creator>timdown</dc:creator>
		<pubDate>Fri, 06 Nov 2009 10:11:26 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276358</guid>
		<description>@anewton: Actually I do expect (library-free) code I&#039;m writing now to work unchanged in the browsers of 5 or 10 years&#039; time, and I think you and all the major library authors should be writing code with the same aim in mind. Feature detection is not only about testing that objects and methods you intend to use exist but also testing they work as you expect and using alternatives if not. If your code is going to break if a single browser manufacturer changes or removes a single non-standard feature &lt;em&gt;that you were not even using for its original purpose&lt;/em&gt; then it is your code that is at fault, not the browser manufacturer.</description>
		<content:encoded><![CDATA[<p>@anewton: Actually I do expect (library-free) code I&#8217;m writing now to work unchanged in the browsers of 5 or 10 years&#8217; time, and I think you and all the major library authors should be writing code with the same aim in mind. Feature detection is not only about testing that objects and methods you intend to use exist but also testing they work as you expect and using alternatives if not. If your code is going to break if a single browser manufacturer changes or removes a single non-standard feature <em>that you were not even using for its original purpose</em> then it is your code that is at fault, not the browser manufacturer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anewton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276347</link>
		<dc:creator>anewton</dc:creator>
		<pubDate>Thu, 05 Nov 2009 21:04:22 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276347</guid>
		<description>@merrick that&#039;s david walsh&#039;s territory. I just want to have these discussions we have are profitable is all.</description>
		<content:encoded><![CDATA[<p>@merrick that&#8217;s david walsh&#8217;s territory. I just want to have these discussions we have are profitable is all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: merrickchristensen</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276345</link>
		<dc:creator>merrickchristensen</dc:creator>
		<pubDate>Thu, 05 Nov 2009 19:30:10 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276345</guid>
		<description>@anewton: I feel like you should be dubbed the official MooTools press/evangelist guy. You do a great job at putting out fires and are very neutral in the way you do it.</description>
		<content:encoded><![CDATA[<p>@anewton: I feel like you should be dubbed the official MooTools press/evangelist guy. You do a great job at putting out fires and are very neutral in the way you do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: csuwldcat</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276344</link>
		<dc:creator>csuwldcat</dc:creator>
		<pubDate>Thu, 05 Nov 2009 19:26:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276344</guid>
		<description>@everyone:  My bad, I got defensive on a passionate subject, my apologies!</description>
		<content:encoded><![CDATA[<p>@everyone:  My bad, I got defensive on a passionate subject, my apologies!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anewton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276343</link>
		<dc:creator>anewton</dc:creator>
		<pubDate>Thu, 05 Nov 2009 18:36:14 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276343</guid>
		<description>@jadet, I agree entirely with your last statement.

Look, the MooTools team (I&#039;m one of them) made a decision on browser feature management in MooTools 1.0. The codebase for this management didn&#039;t change a lot as we iterated over new things. We should have revisited it sooner, and we take to heart the comments about feature detection. Expect this to get better in future versions of MooTools. We do plan on still supporting browser detection - specifically the ability to tell what browser version you are in - to offer backwards compatibility. But we will be avoiding using these values to imply feature support as we iterate forward.
.
@csuwldcat - this thread is more about MooTools fixing something that is going to cause a lot of people headaches and getting the word out that a solution is available for an impending problem. Expressing our personal opinions about which framework is more teh awesomez isn&#039;t going to shed any light on browser feature detection issues.
.
@timdown - my point is that JavaScript frameworks are, by definition, abstractions away from the native implementation of JavaScript. To do this, they touch the very foundations of the native implementation and, as we progress the standards of that language forward, that native implementation will change. Do you think that the technology behind web sites will remain unchanged for the next 5, 10, 15 years? At some point, something will change that affects jQuery 1.0, Dojo 1.0, YUI 1.0, MooTools 1.0. When that happens, sites still using those libraries will break for visitors using those new browsers. If the vendors of these libraries release fixes for them, then the authors of those sites don&#039;t have to go re-write all their JS; they just update their library. That is their value. If you didn&#039;t use a framework, and you touched these foundations yourself (i.e. you wrote your own abstractions that detected features and whatnot), you&#039;d have to rewrite YOUR stuff.

And lest you think that this won&#039;t happen at some point, pay closer attention to the nightlies of webkit and gecko and chrome. They push changes all the time that break the unit tests of these libraries. We give them feedback and they react 99% of the time. In this case, Mozilla decided to stay with it&#039;s decision to remove this method. We respect their right to do that and don&#039;t blame them for this situation, but the fact remains that Mozilla is making a choice to remove a feature that will break a bunch of web sites. It will happen again in Firefox or some other browser, I promise you.</description>
		<content:encoded><![CDATA[<p>@jadet, I agree entirely with your last statement.</p>
<p>Look, the MooTools team (I&#8217;m one of them) made a decision on browser feature management in MooTools 1.0. The codebase for this management didn&#8217;t change a lot as we iterated over new things. We should have revisited it sooner, and we take to heart the comments about feature detection. Expect this to get better in future versions of MooTools. We do plan on still supporting browser detection &#8211; specifically the ability to tell what browser version you are in &#8211; to offer backwards compatibility. But we will be avoiding using these values to imply feature support as we iterate forward.<br />
.<br />
@csuwldcat &#8211; this thread is more about MooTools fixing something that is going to cause a lot of people headaches and getting the word out that a solution is available for an impending problem. Expressing our personal opinions about which framework is more teh awesomez isn&#8217;t going to shed any light on browser feature detection issues.<br />
.<br />
@timdown &#8211; my point is that JavaScript frameworks are, by definition, abstractions away from the native implementation of JavaScript. To do this, they touch the very foundations of the native implementation and, as we progress the standards of that language forward, that native implementation will change. Do you think that the technology behind web sites will remain unchanged for the next 5, 10, 15 years? At some point, something will change that affects jQuery 1.0, Dojo 1.0, YUI 1.0, MooTools 1.0. When that happens, sites still using those libraries will break for visitors using those new browsers. If the vendors of these libraries release fixes for them, then the authors of those sites don&#8217;t have to go re-write all their JS; they just update their library. That is their value. If you didn&#8217;t use a framework, and you touched these foundations yourself (i.e. you wrote your own abstractions that detected features and whatnot), you&#8217;d have to rewrite YOUR stuff.</p>
<p>And lest you think that this won&#8217;t happen at some point, pay closer attention to the nightlies of webkit and gecko and chrome. They push changes all the time that break the unit tests of these libraries. We give them feedback and they react 99% of the time. In this case, Mozilla decided to stay with it&#8217;s decision to remove this method. We respect their right to do that and don&#8217;t blame them for this situation, but the fact remains that Mozilla is making a choice to remove a feature that will break a bunch of web sites. It will happen again in Firefox or some other browser, I promise you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jadet</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276342</link>
		<dc:creator>Jadet</dc:creator>
		<pubDate>Thu, 05 Nov 2009 17:36:52 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276342</guid>
		<description>@csuwldcat: Classes have nothing todo with what&#039;s been discussed. Mootools wasn&#039;t the first to come up with that in javascript and isn&#039;t the only one doing it. You shouldn&#039;t focus too much on one framework.

Gotta love those Mootools fanboys jumping to the rescue everytime someone writes about &#039;their&#039; framework. There&#039;s no need for that here since they admit making a mistake with this release, all we&#039;ve pointed out are better alternatives.</description>
		<content:encoded><![CDATA[<p>@csuwldcat: Classes have nothing todo with what&#8217;s been discussed. Mootools wasn&#8217;t the first to come up with that in javascript and isn&#8217;t the only one doing it. You shouldn&#8217;t focus too much on one framework.</p>
<p>Gotta love those Mootools fanboys jumping to the rescue everytime someone writes about &#8216;their&#8217; framework. There&#8217;s no need for that here since they admit making a mistake with this release, all we&#8217;ve pointed out are better alternatives.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: csuwldcat</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276340</link>
		<dc:creator>csuwldcat</dc:creator>
		<pubDate>Thu, 05 Nov 2009 16:28:43 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276340</guid>
		<description>@everyone

I am going to go out on a limb and guess that many of you who posted about the poor foresight on the Mootools team on this issue also are of the belief that Classes and module patterns are not JS things and &quot;you should stop trying to make js something it&#039;s not&quot;  (I can&#039;t tell you how many times I have heard that load of s...)

Are you all going to crawl back here and extol the fantastic foresight and the perseverance of the Mootools team when ECMA Harmony drops?

http://en.wikipedia.org/wiki/ECMAScript#Future_development

I am going to roll on the f*ng floor when the new Classes and module systems are implemented.  But wait...C..C..Classes? Gee shucks, guess they told ya so huh?  Epic foresight, epic.

When all you &quot;ewww js Classes, no way&quot; folks do have a plate of my shorts in front of you at your dinner table, just make sure to take a picture for me so I always have the memories.</description>
		<content:encoded><![CDATA[<p>@everyone</p>
<p>I am going to go out on a limb and guess that many of you who posted about the poor foresight on the Mootools team on this issue also are of the belief that Classes and module patterns are not JS things and &#8220;you should stop trying to make js something it&#8217;s not&#8221;  (I can&#8217;t tell you how many times I have heard that load of s&#8230;)</p>
<p>Are you all going to crawl back here and extol the fantastic foresight and the perseverance of the Mootools team when ECMA Harmony drops?</p>
<p><a href="http://en.wikipedia.org/wiki/ECMAScript#Future_development" rel="nofollow">http://en.wikipedia.org/wiki/ECMAScript#Future_development</a></p>
<p>I am going to roll on the f*ng floor when the new Classes and module systems are implemented.  But wait&#8230;C..C..Classes? Gee shucks, guess they told ya so huh?  Epic foresight, epic.</p>
<p>When all you &#8220;ewww js Classes, no way&#8221; folks do have a plate of my shorts in front of you at your dinner table, just make sure to take a picture for me so I always have the memories.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rasmusfl0e</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276339</link>
		<dc:creator>rasmusfl0e</dc:creator>
		<pubDate>Thu, 05 Nov 2009 11:53:39 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276339</guid>
		<description>I second fzammetti in that browser vendors should come up with a better and more consistent way to expose the information about the browser, version, build, os, vendor, etc. The useragent string is a piece of crap - hell, IE still has &quot;Mozilla&quot; as the first bit in its string!! ;)

Relying on the useragent string is a bad choice as it can only really be used for past and present browsers - there&#039;s no guarantee what future strings will look like and they can&#039;t be correlated to features (as the features likely don&#039;t exist yet).

Feature detection (not inference) is the way to go forward.

To sum it up: Feature detection is (more) future-proof, useragent sniffing is legacy/backward compatibility.</description>
		<content:encoded><![CDATA[<p>I second fzammetti in that browser vendors should come up with a better and more consistent way to expose the information about the browser, version, build, os, vendor, etc. The useragent string is a piece of crap &#8211; hell, IE still has &#8220;Mozilla&#8221; as the first bit in its string!! ;)</p>
<p>Relying on the useragent string is a bad choice as it can only really be used for past and present browsers &#8211; there&#8217;s no guarantee what future strings will look like and they can&#8217;t be correlated to features (as the features likely don&#8217;t exist yet).</p>
<p>Feature detection (not inference) is the way to go forward.</p>
<p>To sum it up: Feature detection is (more) future-proof, useragent sniffing is legacy/backward compatibility.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dperini</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276338</link>
		<dc:creator>dperini</dc:creator>
		<pubDate>Thu, 05 Nov 2009 10:54:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276338</guid>
		<description>@csuwldcat it&#039;s incredible, on top of the problem this creates to users you tell that at least this was based on &quot;basic system thinking and computer science principles&quot; ... before trying DRY/OO and stuff give us some working code that can last more than just a few months.

@anewton you are saying that since Mootools encountered this sniffing related problem (in late 2009) you are sure that any other code will have the same problems, isn&#039;t this a bit out of truth ?

@timdown I strongly agree with all you said, especially the last part.</description>
		<content:encoded><![CDATA[<p>@csuwldcat it&#8217;s incredible, on top of the problem this creates to users you tell that at least this was based on &#8220;basic system thinking and computer science principles&#8221; &#8230; before trying DRY/OO and stuff give us some working code that can last more than just a few months.</p>
<p>@anewton you are saying that since Mootools encountered this sniffing related problem (in late 2009) you are sure that any other code will have the same problems, isn&#8217;t this a bit out of truth ?</p>
<p>@timdown I strongly agree with all you said, especially the last part.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jadet</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276337</link>
		<dc:creator>Jadet</dc:creator>
		<pubDate>Thu, 05 Nov 2009 10:34:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276337</guid>
		<description>@csuwldcat: I guess you assume that everyone in here is a jQuery fanboy. I could write about bad discissions they made all day and do the same about frameworks I use myself. If I say something it&#039;s only to make them better.</description>
		<content:encoded><![CDATA[<p>@csuwldcat: I guess you assume that everyone in here is a jQuery fanboy. I could write about bad discissions they made all day and do the same about frameworks I use myself. If I say something it&#8217;s only to make them better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: timdown</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276336</link>
		<dc:creator>timdown</dc:creator>
		<pubDate>Thu, 05 Nov 2009 09:52:43 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276336</guid>
		<description>You can use feature detection for a lot more than you think. If you have a browser compatibility problem that you think can&#039;t be fixed with feature detection, chances are you&#039;re just not trying hard enough.

Using this bizarre feature inference on document.getBoxObjectFor was a poor design choice by the MooTools developers. There can&#039;t be much debate about that. To then replace this with UA string sniffing... well, I&#039;m very sceptical that this is likely to be much of an improvement, but  I haven&#039;t looked at the MooTools code so I&#039;ll reserve judgment. 

@anewton: &quot;MooTools is switching to user agent string and feature detection, but I promise you that in another year, or two, or three, sites using it, or jQuery, or YUI, or whatever, will not work with the latest browsers unless people upgrade their frameworks.&quot;
If true, that sounds to me very much like an overwhelming reason not to use these libraries. Surely the point of them should be precisely the opposite. If you use feature detection sensibly then you simply won&#039;t need to change your code when a new browser comes out.</description>
		<content:encoded><![CDATA[<p>You can use feature detection for a lot more than you think. If you have a browser compatibility problem that you think can&#8217;t be fixed with feature detection, chances are you&#8217;re just not trying hard enough.</p>
<p>Using this bizarre feature inference on document.getBoxObjectFor was a poor design choice by the MooTools developers. There can&#8217;t be much debate about that. To then replace this with UA string sniffing&#8230; well, I&#8217;m very sceptical that this is likely to be much of an improvement, but  I haven&#8217;t looked at the MooTools code so I&#8217;ll reserve judgment. </p>
<p>@anewton: &#8220;MooTools is switching to user agent string and feature detection, but I promise you that in another year, or two, or three, sites using it, or jQuery, or YUI, or whatever, will not work with the latest browsers unless people upgrade their frameworks.&#8221;<br />
If true, that sounds to me very much like an overwhelming reason not to use these libraries. Surely the point of them should be precisely the opposite. If you use feature detection sensibly then you simply won&#8217;t need to change your code when a new browser comes out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jdalton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276335</link>
		<dc:creator>jdalton</dc:creator>
		<pubDate>Thu, 05 Nov 2009 06:54:34 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276335</guid>
		<description>@csuwldcat I think most comments here have been constructive. If a framework is using feature detection correctly and a browser suddenly yanked support for a method it used to determine positioning, it would fallback on another solution and not cause a problem. When I write code I try to do it as basic as possible and then go back and add feature detection for native methods I might branch to if they are supported.</description>
		<content:encoded><![CDATA[<p>@csuwldcat I think most comments here have been constructive. If a framework is using feature detection correctly and a browser suddenly yanked support for a method it used to determine positioning, it would fallback on another solution and not cause a problem. When I write code I try to do it as basic as possible and then go back and add feature detection for native methods I might branch to if they are supported.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: csuwldcat</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276333</link>
		<dc:creator>csuwldcat</dc:creator>
		<pubDate>Thu, 05 Nov 2009 05:45:27 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276333</guid>
		<description>Wow, all these attacks sound like total bullshit to me.  If one of the features that jQuery used to determine positioning had been suddenly yanked and it failed in one browser I bet you all wouldn&#039;t have your polka-dot girl panties in a bunch. 

Next time save the rhetoric about such a pointless subject and compare library features and adherence to DRY, OO principles, then we can have a real debate.  

What was the motto again?  &quot;Write less, do more&quot;...hmm I think it&#039;s more like, &quot;Write less over and over again without employing any system thinking or basic computer science principles, then feel like you&#039;ve done more out of ignorance.&quot;

As Johnny Storm says: &quot;Flame (war) on!&quot;</description>
		<content:encoded><![CDATA[<p>Wow, all these attacks sound like total bullshit to me.  If one of the features that jQuery used to determine positioning had been suddenly yanked and it failed in one browser I bet you all wouldn&#8217;t have your polka-dot girl panties in a bunch. </p>
<p>Next time save the rhetoric about such a pointless subject and compare library features and adherence to DRY, OO principles, then we can have a real debate.  </p>
<p>What was the motto again?  &#8220;Write less, do more&#8221;&#8230;hmm I think it&#8217;s more like, &#8220;Write less over and over again without employing any system thinking or basic computer science principles, then feel like you&#8217;ve done more out of ignorance.&#8221;</p>
<p>As Johnny Storm says: &#8220;Flame (war) on!&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: posaune</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276332</link>
		<dc:creator>posaune</dc:creator>
		<pubDate>Thu, 05 Nov 2009 02:41:49 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276332</guid>
		<description>The problem is that people use feature detection for the wrong thing. We should not be making assumptions about a browser&#039;s support based on the existence of certain properties or UA substring. Instead, test for an explicit feature *only when manipulating something directly related to said feature*. For reference, see jQuery&#039;s method of browser support: jQuery.support

http://docs.jquery.com/Utilities/jQuery.support

The way jQuery uses jQuery.support internally prevents this type of compatibility issue (but not all)</description>
		<content:encoded><![CDATA[<p>The problem is that people use feature detection for the wrong thing. We should not be making assumptions about a browser&#8217;s support based on the existence of certain properties or UA substring. Instead, test for an explicit feature *only when manipulating something directly related to said feature*. For reference, see jQuery&#8217;s method of browser support: jQuery.support</p>
<p><a href="http://docs.jquery.com/Utilities/jQuery.support" rel="nofollow">http://docs.jquery.com/Utilities/jQuery.support</a></p>
<p>The way jQuery uses jQuery.support internally prevents this type of compatibility issue (but not all)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anewton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276331</link>
		<dc:creator>anewton</dc:creator>
		<pubDate>Thu, 05 Nov 2009 01:15:53 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276331</guid>
		<description>From my perspective, this is one of those things that goes back and forth. At first, user agent strings were what we all used in our code (look back to 1998 to find JS libs that did this stuff for you) and then browsers started lying to us. So we stopped using the user agent string and started finding other things that made browsers unique. You can use feature detection for a lot of things, but not everything. And when a future browser comes out that has the feature, but implements it backwards or wrong, we&#039;re in the same boat.

The fact is that browsers are inconsistent with each other. We author our sites to work with them, but go find a site with a bunch of javascript written for Firefox 1, or Netscape 4, or IE5, and I&#039;ll show you a site that doesn&#039;t work in Firefox3 and IE8.

MooTools is switching to user agent string and feature detection, but I promise you that in another year, or two, or three, sites using it, or jQuery, or YUI, or whatever, will not work with the latest browsers unless people upgrade their frameworks.

Indeed, this is the *point* of a framework. It abstracts these things from what *you* write, so that when it changes, you update the framework, but don&#039;t have to change your code.</description>
		<content:encoded><![CDATA[<p>From my perspective, this is one of those things that goes back and forth. At first, user agent strings were what we all used in our code (look back to 1998 to find JS libs that did this stuff for you) and then browsers started lying to us. So we stopped using the user agent string and started finding other things that made browsers unique. You can use feature detection for a lot of things, but not everything. And when a future browser comes out that has the feature, but implements it backwards or wrong, we&#8217;re in the same boat.</p>
<p>The fact is that browsers are inconsistent with each other. We author our sites to work with them, but go find a site with a bunch of javascript written for Firefox 1, or Netscape 4, or IE5, and I&#8217;ll show you a site that doesn&#8217;t work in Firefox3 and IE8.</p>
<p>MooTools is switching to user agent string and feature detection, but I promise you that in another year, or two, or three, sites using it, or jQuery, or YUI, or whatever, will not work with the latest browsers unless people upgrade their frameworks.</p>
<p>Indeed, this is the *point* of a framework. It abstracts these things from what *you* write, so that when it changes, you update the framework, but don&#8217;t have to change your code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Breton</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276330</link>
		<dc:creator>Breton</dc:creator>
		<pubDate>Thu, 05 Nov 2009 00:45:39 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276330</guid>
		<description>&quot;Maybe it’s naive in some way I haven’t detected yet, but I’ve always felt the browser vendors should simply provide a JS function that returns a browser identifier object that uniquely identifies the browser type and version REGARDLESS of what the agent string is set to.&quot;

That would be bad, because then programmers might use it. It&#039;s not a solution that improves on any of the things that are bad about user agent strings.</description>
		<content:encoded><![CDATA[<p>&#8220;Maybe it’s naive in some way I haven’t detected yet, but I’ve always felt the browser vendors should simply provide a JS function that returns a browser identifier object that uniquely identifies the browser type and version REGARDLESS of what the agent string is set to.&#8221;</p>
<p>That would be bad, because then programmers might use it. It&#8217;s not a solution that improves on any of the things that are bad about user agent strings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jadet</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276329</link>
		<dc:creator>Jadet</dc:creator>
		<pubDate>Wed, 04 Nov 2009 23:41:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276329</guid>
		<description>@fzammetti: There will always be browsers trying to fake being other browsers so they are not left out, in the same way you now have useragent strings with &#039;like Gecko&#039; in them. Opera has had the window.opera object with opera.version() for some time. It might be nice if others followed so client-side UA sniffing could become a thing of the past one day.
@rmg: No, you shouldn&#039;t have to modify code every time a browser updates. Mootools could have avoided this by not sniffing out a browser based on a feature. If they used feature detection instead of relying on browser sniffing internally they wouldn&#039;t even need an update, assuming they also stopped exposing browser sniffs.</description>
		<content:encoded><![CDATA[<p>@fzammetti: There will always be browsers trying to fake being other browsers so they are not left out, in the same way you now have useragent strings with &#8216;like Gecko&#8217; in them. Opera has had the window.opera object with opera.version() for some time. It might be nice if others followed so client-side UA sniffing could become a thing of the past one day.<br />
@rmg: No, you shouldn&#8217;t have to modify code every time a browser updates. Mootools could have avoided this by not sniffing out a browser based on a feature. If they used feature detection instead of relying on browser sniffing internally they wouldn&#8217;t even need an update, assuming they also stopped exposing browser sniffs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rmg182</title>
		<link>http://ajaxian.com/archives/mootools-call-to-upgrade/comment-page-1#comment-276328</link>
		<dc:creator>rmg182</dc:creator>
		<pubDate>Wed, 04 Nov 2009 23:15:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7869#comment-276328</guid>
		<description>Wow.. there&#039;s no issue here. Firefox 3.6 is a new browser release with new features and the framework needs to update how it is going to detect this *new* browser. Old FF versions will still be detected fine (since they will still have this method).

When IE9, Safari 5, FF4, etc. are released; guess what? You&#039;ll all need to do something different than you were for their previous versions to detect these new ones (read: update your code). Common sense.</description>
		<content:encoded><![CDATA[<p>Wow.. there&#8217;s no issue here. Firefox 3.6 is a new browser release with new features and the framework needs to update how it is going to detect this *new* browser. Old FF versions will still be detected fine (since they will still have this method).</p>
<p>When IE9, Safari 5, FF4, etc. are released; guess what? You&#8217;ll all need to do something different than you were for their previous versions to detect these new ones (read: update your code). Common sense.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
