<?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: Revenge of the $</title>
	<atom:link href="http://ajaxian.com/archives/revenge-of-the/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/revenge-of-the</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 18 Mar 2010 02:38:40 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Chuck</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10589</link>
		<dc:creator>Chuck</dc:creator>
		<pubDate>Thu, 18 May 2006 20:46:19 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10589</guid>
		<description>Wow! What I can of worms I opened! It seems ironic that the HelloWorld Dojo tutorial came out on the day after I whined about the lack of Dojo documentation and spurred the &quot;Associative Array debate of 2006&quot;. Not that the tutorial answers all my questions, but it is nice to see efforts in that direction.</description>
		<content:encoded><![CDATA[<p>Wow! What I can of worms I opened! It seems ironic that the HelloWorld Dojo tutorial came out on the day after I whined about the lack of Dojo documentation and spurred the &#8220;Associative Array debate of 2006&#8243;. Not that the tutorial answers all my questions, but it is nice to see efforts in that direction.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Dupont</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10445</link>
		<dc:creator>Andrew Dupont</dc:creator>
		<pubDate>Thu, 18 May 2006 17:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10445</guid>
		<description>Gabe: this is true.  Prototype breaks any scripts that rely upon &lt;code&gt;Array&lt;/code&gt; to work with string keys.  This is not Prototype&#039;s to fix, however.

To use an example: a few comments ago, someone linked to a blog post that noted its author&#039;s inability to get Prototype and TinyMCE to work on the same page.  Investigation reveals that this conflict is caused by TinyMCE&#039;s improper use of &lt;code&gt;Array&lt;/code&gt; with string keys.  (TinyMCE is otherwise excellent, so it goes to show how common this mistake is if such a robust tool employs it.) I&#039;ve filed a bug on TinyMCE&#039;s SourceForge project, and since the fix is so simple I hope it&#039;ll get done soon.

If there are those who still think that using string keys in &lt;code&gt;Array&lt;/code&gt;s is a valid practice and should not be discouraged, they ought to read my recent article on this topic: &lt;a href=&quot;http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/&quot; rel=&quot;nofollow&quot;&gt;JavaScript &quot;Associative Arrays&quot; Considered Harmful&lt;/a&gt;. It makes an exhaustive argument, one far too long to fit in this comment.</description>
		<content:encoded><![CDATA[<p>Gabe: this is true.  Prototype breaks any scripts that rely upon <code>Array</code> to work with string keys.  This is not Prototype&#8217;s to fix, however.</p>
<p>To use an example: a few comments ago, someone linked to a blog post that noted its author&#8217;s inability to get Prototype and TinyMCE to work on the same page.  Investigation reveals that this conflict is caused by TinyMCE&#8217;s improper use of <code>Array</code> with string keys.  (TinyMCE is otherwise excellent, so it goes to show how common this mistake is if such a robust tool employs it.) I&#8217;ve filed a bug on TinyMCE&#8217;s SourceForge project, and since the fix is so simple I hope it&#8217;ll get done soon.</p>
<p>If there are those who still think that using string keys in <code>Array</code>s is a valid practice and should not be discouraged, they ought to read my recent article on this topic: <a href="http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/" rel="nofollow">JavaScript &#8220;Associative Arrays&#8221; Considered Harmful</a>. It makes an exhaustive argument, one far too long to fit in this comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marty</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10334</link>
		<dc:creator>Marty</dc:creator>
		<pubDate>Thu, 18 May 2006 13:46:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10334</guid>
		<description>Very entertaining discussion, thanks!</description>
		<content:encoded><![CDATA[<p>Very entertaining discussion, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10329</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Thu, 18 May 2006 13:27:22 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10329</guid>
		<description>I&#039;m sorry I suppose javascript code at LexisNexis which has over 200 thousand dollars in revenue pass through it each month isnt &quot;production&quot; enough for you.  I&#039;m not looking through that pdf but a quick search for associative yields nothing along the lines of associative arrays,  either way its been used and is common knowledge that some people do in fact use it.  In a large group, declaring an array and seeing custom keys be used on it, its easy for other team members to say &quot;oh.. thats an associative array&quot; and be about their merry little business.  Other than that &lt;b&gt;Gabe da Silveira&lt;/b&gt; makes my point fairly concisely.</description>
		<content:encoded><![CDATA[<p>I&#8217;m sorry I suppose javascript code at LexisNexis which has over 200 thousand dollars in revenue pass through it each month isnt &#8220;production&#8221; enough for you.  I&#8217;m not looking through that pdf but a quick search for associative yields nothing along the lines of associative arrays,  either way its been used and is common knowledge that some people do in fact use it.  In a large group, declaring an array and seeing custom keys be used on it, its easy for other team members to say &#8220;oh.. thats an associative array&#8221; and be about their merry little business.  Other than that <b>Gabe da Silveira</b> makes my point fairly concisely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10247</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Thu, 18 May 2006 05:46:23 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10247</guid>
		<description>Good Point @Gabe da Silveira. I could see where that would be annoying.</description>
		<content:encoded><![CDATA[<p>Good Point @Gabe da Silveira. I could see where that would be annoying.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10246</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Thu, 18 May 2006 05:45:18 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10246</guid>
		<description>Ya I am a Prototype Fanboy. You got me 8P. Opinions are like... well you know the rest. 

Over&#039;n Out on this post.</description>
		<content:encoded><![CDATA[<p>Ya I am a Prototype Fanboy. You got me 8P. Opinions are like&#8230; well you know the rest. </p>
<p>Over&#8217;n Out on this post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gabe da Silveira</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10245</link>
		<dc:creator>Gabe da Silveira</dc:creator>
		<pubDate>Thu, 18 May 2006 05:14:48 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10245</guid>
		<description>Andrew, I can see your point that using Array as a hash instead of Object is incorrect and misleading, but you seem to be willfully ignoring Allen&#039;s point which is that Prototype has the potential to break other scripts.  Just because those other scripts don&#039;t follow your semantic standard doesn&#039;t mean they aren&#039;t depending on standard behaviour.  I mean, an array is an object right?  

More importantly, debugging javascript interdependencies of this type is a nightmare.  Semantic nitpicking about how certain code is wrong is little consolation for the developer who&#039;s code works without Prototype, but breaks when Prototype is included.</description>
		<content:encoded><![CDATA[<p>Andrew, I can see your point that using Array as a hash instead of Object is incorrect and misleading, but you seem to be willfully ignoring Allen&#8217;s point which is that Prototype has the potential to break other scripts.  Just because those other scripts don&#8217;t follow your semantic standard doesn&#8217;t mean they aren&#8217;t depending on standard behaviour.  I mean, an array is an object right?  </p>
<p>More importantly, debugging javascript interdependencies of this type is a nightmare.  Semantic nitpicking about how certain code is wrong is little consolation for the developer who&#8217;s code works without Prototype, but breaks when Prototype is included.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: flamebait</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10201</link>
		<dc:creator>flamebait</dc:creator>
		<pubDate>Thu, 18 May 2006 01:00:48 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10201</guid>
		<description>@Mario : Pot, Kettle, Black, Boom!  You&#039;ve completely unconvinced me as anyone who&#039;s opinion merits any weight.  You portray yourself as much a &#039;troll&#039; as those you&#039;ve accused of such.</description>
		<content:encoded><![CDATA[<p>@Mario : Pot, Kettle, Black, Boom!  You&#8217;ve completely unconvinced me as anyone who&#8217;s opinion merits any weight.  You portray yourself as much a &#8216;troll&#8217; as those you&#8217;ve accused of such.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10191</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Wed, 17 May 2006 23:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10191</guid>
		<description>var koolaid = new Object();
koolaid[&#039;Flavor&#039;] = &#039;Bogus Blind Sheep&#039;;

/* 
I </description>
		<content:encoded><![CDATA[<p>var koolaid = new Object();<br />
koolaid['Flavor'] = &#8216;Bogus Blind Sheep&#8217;;</p>
<p>/*<br />
I</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10189</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Wed, 17 May 2006 23:21:22 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10189</guid>
		<description>I know PHP allows you to set keys n such. $foo = array(&#039;bar&#039;=&gt;3); n jazz. I don&#039;t know if count($foo) would return 1 or not... prolly would... unlike js where foo = new Array(); foo[&#039;bar&#039;]=3; alert(foo.length) does not return 1.

It flys in my real world environments just fine. Then again, everything is built in from prototype 8P.</description>
		<content:encoded><![CDATA[<p>I know PHP allows you to set keys n such. $foo = array(&#8217;bar&#8217;=&gt;3); n jazz. I don&#8217;t know if count($foo) would return 1 or not&#8230; prolly would&#8230; unlike js where foo = new Array(); foo['bar']=3; alert(foo.length) does not return 1.</p>
<p>It flys in my real world environments just fine. Then again, everything is built in from prototype 8P.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Dupont</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10168</link>
		<dc:creator>Andrew Dupont</dc:creator>
		<pubDate>Wed, 17 May 2006 21:20:12 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10168</guid>
		<description>Allen, my final word on this will be the &lt;a href=&quot;http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf&quot; rel=&quot;nofollow&quot;&gt;ECMAScript specification itself&lt;/a&gt;.  If there is a more reliable source than this on what the &quot;initial functionality of the language&quot; is, then I&#039;m sure you&#039;ll explain it to me.  If the spec is at odds with your &quot;production code,&quot; then your code was never &quot;production&quot; to begin with.</description>
		<content:encoded><![CDATA[<p>Allen, my final word on this will be the <a href="http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf" rel="nofollow">ECMAScript specification itself</a>.  If there is a more reliable source than this on what the &#8220;initial functionality of the language&#8221; is, then I&#8217;m sure you&#8217;ll explain it to me.  If the spec is at odds with your &#8220;production code,&#8221; then your code was never &#8220;production&#8221; to begin with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10165</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Wed, 17 May 2006 20:50:38 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10165</guid>
		<description>I&#039;m speaking from a purely generic sense of the term &quot;associative arrays&quot;, not php.  I&#039;m not going to argue semantics and implementations, we could do that for weeks.  Bottom line, people are doing stuff that screws with the initial functionality of the language, and then getting pissy when other people complain that their code (for...in loops) is broken.  It wont fly in a real world enviroment, i&#039;ve seen people try, the code never sees prod.</description>
		<content:encoded><![CDATA[<p>I&#8217;m speaking from a purely generic sense of the term &#8220;associative arrays&#8221;, not php.  I&#8217;m not going to argue semantics and implementations, we could do that for weeks.  Bottom line, people are doing stuff that screws with the initial functionality of the language, and then getting pissy when other people complain that their code (for&#8230;in loops) is broken.  It wont fly in a real world enviroment, i&#8217;ve seen people try, the code never sees prod.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Dupont</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10162</link>
		<dc:creator>Andrew Dupont</dc:creator>
		<pubDate>Wed, 17 May 2006 20:18:12 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10162</guid>
		<description>Allen: I suspect the only reason you seem to be equating numeric arrays and associative arrays is because they are more or less the same in PHP.  In nearly every other language that comes to mind, there is a distinct separation between them.  Ruby has arrays and hashes; Python has lists and dictionaries; Java has arrays and hashmaps.  This isn&#039;t just an accident: most languages treat them as different because they &lt;em&gt;are&lt;/em&gt; different.  (A numeric array, for example, has an explicit order of iteration, whereas an associative array usually doesn&#039;t.)

You seem to be arguing from the position that the two are &lt;em&gt;obviously&lt;/em&gt; one and the same, and that the burden is on &lt;em&gt;me&lt;/em&gt; to convince &lt;em&gt;you&lt;/em&gt; that they ought to be separate.  Again, I ask: what advantage is there to using &lt;code&gt;Array&lt;/code&gt; instead of &lt;code&gt;Object&lt;/code&gt;, other than your argument from linguistics?

Out of curiosity, if modifying &lt;code&gt;Array.prototype&lt;/code&gt; (or any other object&#039;s prototype) is such a horrid idea in the first place, then why is it explicitly allowed by the language?  (Also: the $ function has nothing to do with any object&#039;s prototype; it&#039;s just an ordinary function.  Should &lt;em&gt;defining functions&lt;/em&gt; be considered &quot;bad practice&quot;?)</description>
		<content:encoded><![CDATA[<p>Allen: I suspect the only reason you seem to be equating numeric arrays and associative arrays is because they are more or less the same in PHP.  In nearly every other language that comes to mind, there is a distinct separation between them.  Ruby has arrays and hashes; Python has lists and dictionaries; Java has arrays and hashmaps.  This isn&#8217;t just an accident: most languages treat them as different because they <em>are</em> different.  (A numeric array, for example, has an explicit order of iteration, whereas an associative array usually doesn&#8217;t.)</p>
<p>You seem to be arguing from the position that the two are <em>obviously</em> one and the same, and that the burden is on <em>me</em> to convince <em>you</em> that they ought to be separate.  Again, I ask: what advantage is there to using <code>Array</code> instead of <code>Object</code>, other than your argument from linguistics?</p>
<p>Out of curiosity, if modifying <code>Array.prototype</code> (or any other object&#8217;s prototype) is such a horrid idea in the first place, then why is it explicitly allowed by the language?  (Also: the $ function has nothing to do with any object&#8217;s prototype; it&#8217;s just an ordinary function.  Should <em>defining functions</em> be considered &#8220;bad practice&#8221;?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10156</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Wed, 17 May 2006 19:26:28 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10156</guid>
		<description>@Andrew

Yes, I know the point your trying to drive home, in short &quot;Everything is an object so its not really a hack because its the same as array&quot;,  this is what I meant by &quot;behind the scenes&quot;.... behind the scenes an array is just an object that your free to have your way with and (insert your previous post here...).  Yes I know this, but when it boils down to it, we do have an &quot;array type&quot; and we can insert custom keys, making it the very definition of the technical term &quot;associative array&quot;.  Javascript, like every language out there, has a thousand differen ways to mimmick associative arrays.  Regardless, considering the very definition of associative arrays, and the fact that we do have an &quot;array type&quot; makes it a feature.  As far as I&#039;m concerned, the javascript &quot;authority&quot; is the existing code base that people (in a real development position, not just hobby) use.  You cant go messing with the prototype because your too lazy to type document.getElementById(&#039;&#039;), and then yell at the authors of the scripts that you just broke saying &quot;your doing this wrong...&quot;.  We&#039;ve had people do this, adding $, or adding additional functionality, and consequently breaking 5+ years worth of code.  Its caught in testing, and they are forced to code the right way.  With that said, for small independantly developed stuff that isnt going to be reused, or as a free standing little project, by all means, use $</description>
		<content:encoded><![CDATA[<p>@Andrew</p>
<p>Yes, I know the point your trying to drive home, in short &#8220;Everything is an object so its not really a hack because its the same as array&#8221;,  this is what I meant by &#8220;behind the scenes&#8221;&#8230;. behind the scenes an array is just an object that your free to have your way with and (insert your previous post here&#8230;).  Yes I know this, but when it boils down to it, we do have an &#8220;array type&#8221; and we can insert custom keys, making it the very definition of the technical term &#8220;associative array&#8221;.  Javascript, like every language out there, has a thousand differen ways to mimmick associative arrays.  Regardless, considering the very definition of associative arrays, and the fact that we do have an &#8220;array type&#8221; makes it a feature.  As far as I&#8217;m concerned, the javascript &#8220;authority&#8221; is the existing code base that people (in a real development position, not just hobby) use.  You cant go messing with the prototype because your too lazy to type document.getElementById(&#8221;), and then yell at the authors of the scripts that you just broke saying &#8220;your doing this wrong&#8230;&#8221;.  We&#8217;ve had people do this, adding $, or adding additional functionality, and consequently breaking 5+ years worth of code.  Its caught in testing, and they are forced to code the right way.  With that said, for small independantly developed stuff that isnt going to be reused, or as a free standing little project, by all means, use $</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Dupont</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10155</link>
		<dc:creator>Andrew Dupont</dc:creator>
		<pubDate>Wed, 17 May 2006 19:10:11 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10155</guid>
		<description>Allen, can you cite a reference for this &quot;behind-the-scenes&quot; implementation?  Or have you just assumed that the implementaton was &quot;behind-the-scenes&quot; because it it works even though it&#039;s not actually endorsed by any JavaScript authority?

It is true that in a pristine browser enviroment, the code below will behave exactly as you would expect:

&lt;code&gt;var arr = new Array();
arr[&quot;one&quot;] = &#039;one&#039;;
arr[&quot;two&quot;] = &#039;two&#039;;
arr[&quot;three&quot;] = &#039;three&#039;;
for (i in arr { alert(i); } // (or your logging method of choice)
&lt;/code&gt;

What&#039;s also true is that the above code works even when you replace &lt;code&gt;Array&lt;/code&gt; with &lt;code&gt;RegExp&lt;/code&gt;, &lt;code&gt;Date&lt;/code&gt;, &lt;code&gt;String&lt;/code&gt;, or &lt;code&gt;Boolean&lt;/code&gt;.  I know because I experimented just now.

All these objects &quot;work&quot; as hash tables because they&#039;re all children of &lt;code&gt;Object&lt;/code&gt;.  That doesn&#039;t mean that using them this way is correct, and it &lt;em&gt;certainly&lt;/em&gt; doesn&#039;t mean that the &lt;code&gt;prototype&lt;/code&gt;s of these objects are hands-off.  Most importantly, though, there&#039;s &lt;em&gt;no advantage whatsoever&lt;/em&gt; in using &lt;code&gt;Array&lt;/code&gt; over &lt;code&gt;Object&lt;/code&gt;, so I don&#039;t understand why using &lt;code&gt;Object&lt;/code&gt; is the &quot;hack&quot; and using &lt;code&gt;Array&lt;/code&gt; is the &quot;feature.&quot;</description>
		<content:encoded><![CDATA[<p>Allen, can you cite a reference for this &#8220;behind-the-scenes&#8221; implementation?  Or have you just assumed that the implementaton was &#8220;behind-the-scenes&#8221; because it it works even though it&#8217;s not actually endorsed by any JavaScript authority?</p>
<p>It is true that in a pristine browser enviroment, the code below will behave exactly as you would expect:</p>
<p><code>var arr = new Array();<br />
arr["one"] = 'one';<br />
arr["two"] = 'two';<br />
arr["three"] = 'three';<br />
for (i in arr { alert(i); } // (or your logging method of choice)<br />
</code></p>
<p>What&#8217;s also true is that the above code works even when you replace <code>Array</code> with <code>RegExp</code>, <code>Date</code>, <code>String</code>, or <code>Boolean</code>.  I know because I experimented just now.</p>
<p>All these objects &#8220;work&#8221; as hash tables because they&#8217;re all children of <code>Object</code>.  That doesn&#8217;t mean that using them this way is correct, and it <em>certainly</em> doesn&#8217;t mean that the <code>prototype</code>s of these objects are hands-off.  Most importantly, though, there&#8217;s <em>no advantage whatsoever</em> in using <code>Array</code> over <code>Object</code>, so I don&#8217;t understand why using <code>Object</code> is the &#8220;hack&#8221; and using <code>Array</code> is the &#8220;feature.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10153</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Wed, 17 May 2006 19:08:28 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10153</guid>
		<description>HAHAHAH Allen. 

I can&#039;t believe people can&#039;t see that its a mis&#039;use of the Array. When you do var foo = new Array(); foo[&#039;apple&#039;] = 3, you havent added anything to the array. You have just assigned the foo array object a property named &#039;apple&#039; and = to 3. In other words alert(foo.apple); //returns 3. 

Come on now.
var foo = new Object(); foo[&#039;apple&#039;] = 3; //woah I have an associative object *snicker*</description>
		<content:encoded><![CDATA[<p>HAHAHAH Allen. </p>
<p>I can&#8217;t believe people can&#8217;t see that its a mis&#8217;use of the Array. When you do var foo = new Array(); foo['apple'] = 3, you havent added anything to the array. You have just assigned the foo array object a property named &#8216;apple&#8217; and = to 3. In other words alert(foo.apple); //returns 3. </p>
<p>Come on now.<br />
var foo = new Object(); foo['apple'] = 3; //woah I have an associative object *snicker*</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10150</link>
		<dc:creator>Allen</dc:creator>
		<pubDate>Wed, 17 May 2006 18:31:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10150</guid>
		<description>@andrew

whoa whoa whoa, sorry but this comment is wrong
&lt;blockquote cite=&quot;&quot;&gt;Iâ€™m guessing youâ€™re trying to use the Array object with string keys, which doesnâ€™t work, and is incorrect.
&lt;/blockquote&gt;

Associative arrays are a feature, just because the way they where origionally implemented behind the scenes is unusual, does not make it &quot; incorrect &quot; to use.  The dollar sign stuff is a hack, the object workaround for associative arrays is a hack, so there is no room to even begin saying that using associative arrays in the classical sense in js is wrong.</description>
		<content:encoded><![CDATA[<p>@andrew</p>
<p>whoa whoa whoa, sorry but this comment is wrong</p>
<blockquote cite=""><p>Iâ€™m guessing youâ€™re trying to use the Array object with string keys, which doesnâ€™t work, and is incorrect.
</p></blockquote>
<p>Associative arrays are a feature, just because the way they where origionally implemented behind the scenes is unusual, does not make it &#8221; incorrect &#8221; to use.  The dollar sign stuff is a hack, the object workaround for associative arrays is a hack, so there is no room to even begin saying that using associative arrays in the classical sense in js is wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Dupont</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10142</link>
		<dc:creator>Andrew Dupont</dc:creator>
		<pubDate>Wed, 17 May 2006 17:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10142</guid>
		<description>Dylan, I&#039;ve heard rumors about that documentation tool... it sounds awesome.  I can&#039;t wait until it&#039;s ready.

I think it&#039;s a good thing that there are major design differences between Dojo and Prototype -- it means that the two are not really in direct competition.  Choosing between them isn&#039;t necessarily about which is &#039;better&#039;; it&#039;s about which one fits your brain better, and that will vary from person to person.  As a result, the competiton between the frameworks is healthy rather than combative (in my opinion).  (I think Alex even said something to this effect at the Ajax conference, in contrast with the gruff exterior he sometimes casts on the web. :)

Though I hack Prototype in my spare time, I have no formal affiliation with the project, but I&#039;m active in its informal support mechanisms, and I think it&#039;s a great idea to collaborate on the big-picture stuff. Why don&#039;t you shoot me an e-mail (just follow the link to my site) and we can discuss it further?</description>
		<content:encoded><![CDATA[<p>Dylan, I&#8217;ve heard rumors about that documentation tool&#8230; it sounds awesome.  I can&#8217;t wait until it&#8217;s ready.</p>
<p>I think it&#8217;s a good thing that there are major design differences between Dojo and Prototype &#8212; it means that the two are not really in direct competition.  Choosing between them isn&#8217;t necessarily about which is &#8216;better&#8217;; it&#8217;s about which one fits your brain better, and that will vary from person to person.  As a result, the competiton between the frameworks is healthy rather than combative (in my opinion).  (I think Alex even said something to this effect at the Ajax conference, in contrast with the gruff exterior he sometimes casts on the web. :)</p>
<p>Though I hack Prototype in my spare time, I have no formal affiliation with the project, but I&#8217;m active in its informal support mechanisms, and I think it&#8217;s a great idea to collaborate on the big-picture stuff. Why don&#8217;t you shoot me an e-mail (just follow the link to my site) and we can discuss it further?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dylan Schiemann</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10131</link>
		<dc:creator>Dylan Schiemann</dc:creator>
		<pubDate>Wed, 17 May 2006 17:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10131</guid>
		<description>Andrew,


I think Alex has grown up a lot over the past year.  I think if/when you meet him, you&#039;ll realize he&#039;s passionate about his work, and sometimes outspoken about it.  That said, most dhtml hackers tend to be miserable :), and we&#039;ve all said stuff in our lives that we would prefer to take back


I do know that when prototype was first released, several of the Dojos were upset, not because of what prototype was, but for two reasons: 1) yet another toolkit (Dojo was started through bringing together 4 existing toolkits, and a number of old school dhtml hackers), and 2) we were way too slow getting an initial release of Dojo out the door, losing the chance to provide something you all could build on top of (probably because so many strong personalities were coming together at once and trying to agree on something :) ).  For me, I feel bad when good people suffer through some of the mistakes I&#039;ve suffered through already.


I think the adoption of prototype and its derivatives has been amazing, as has the adoption of Dojo and the other leading toolkits.  I&#039;m still in awe of the interest in what we are all trying to do here.  I think healthy co-opetition (for lack of a better term), along the model of what Opera/Safari/Mozilla, is great for raising the quality of all of our toolkits.


We all suffer through documentation woes, because people want to work on features and bug fixes, not docs.  And of course, we all have the problem of docs quickly becoming outdated when code changes as rapdily as it does with the current pace of toolkit development.  We&#039;ve been working on a &lt;a href=&quot;http://dojo.jot.com/WikiHome/Parser+Documentation&quot; rel=&quot;nofollow&quot;&gt;
documentation tool&lt;/a&gt; that we hope many toolkits can use as a starting point for docs.

If you are interested, we would be more than willing to work with you all to increase interoperability, define common APIs, collaborate on development tools, etc. ... anything that might make life easier for the bigger development community, and stuff that might encourage people to use existing toolkits rather than starting from scratch.  And of course we&#039;d want to do that in a way that had a high signal to noise ratio.</description>
		<content:encoded><![CDATA[<p>Andrew,</p>
<p>I think Alex has grown up a lot over the past year.  I think if/when you meet him, you&#8217;ll realize he&#8217;s passionate about his work, and sometimes outspoken about it.  That said, most dhtml hackers tend to be miserable :), and we&#8217;ve all said stuff in our lives that we would prefer to take back</p>
<p>I do know that when prototype was first released, several of the Dojos were upset, not because of what prototype was, but for two reasons: 1) yet another toolkit (Dojo was started through bringing together 4 existing toolkits, and a number of old school dhtml hackers), and 2) we were way too slow getting an initial release of Dojo out the door, losing the chance to provide something you all could build on top of (probably because so many strong personalities were coming together at once and trying to agree on something :) ).  For me, I feel bad when good people suffer through some of the mistakes I&#8217;ve suffered through already.</p>
<p>I think the adoption of prototype and its derivatives has been amazing, as has the adoption of Dojo and the other leading toolkits.  I&#8217;m still in awe of the interest in what we are all trying to do here.  I think healthy co-opetition (for lack of a better term), along the model of what Opera/Safari/Mozilla, is great for raising the quality of all of our toolkits.</p>
<p>We all suffer through documentation woes, because people want to work on features and bug fixes, not docs.  And of course, we all have the problem of docs quickly becoming outdated when code changes as rapdily as it does with the current pace of toolkit development.  We&#8217;ve been working on a <a href="http://dojo.jot.com/WikiHome/Parser+Documentation" rel="nofollow"><br />
documentation tool</a> that we hope many toolkits can use as a starting point for docs.</p>
<p>If you are interested, we would be more than willing to work with you all to increase interoperability, define common APIs, collaborate on development tools, etc. &#8230; anything that might make life easier for the bigger development community, and stuff that might encourage people to use existing toolkits rather than starting from scratch.  And of course we&#8217;d want to do that in a way that had a high signal to noise ratio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chuck</title>
		<link>http://ajaxian.com/archives/revenge-of-the/comment-page-1#comment-10123</link>
		<dc:creator>Chuck</dc:creator>
		<pubDate>Wed, 17 May 2006 15:58:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=1181#comment-10123</guid>
		<description>Thanks for the Prototype tip, Andrew. That now seems so obvious that I&#039;m embarrased. It does reinforce my comfort with Prototype.</description>
		<content:encoded><![CDATA[<p>Thanks for the Prototype tip, Andrew. That now seems so obvious that I&#8217;m embarrased. It does reinforce my comfort with Prototype.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
