<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wayne Pan &#187; javascript</title>
	<atom:link href="http://waynepan.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://waynepan.com</link>
	<description>tech &#124; js &#124; ui &#124; ajax &#124; mobile</description>
	<lastBuildDate>Fri, 03 Sep 2010 22:16:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>iPhone 3.0 now with SquirrelFish Extreme?</title>
		<link>http://waynepan.com/2009/03/24/iphone-30-javascript-performance/</link>
		<comments>http://waynepan.com/2009/03/24/iphone-30-javascript-performance/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 23:08:11 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=368</guid>
		<description><![CDATA[I saw a post on Ajaxian about how iPhone 3.0 might now include SquirrelFish Extreme so I did a quick and dirty using this. Here&#8217;s are the results (raw spreadsheet here). iPhone 3.0 definitely has something, (whether it&#8217;s SquirrelFish or &#8230; <a href="http://waynepan.com/2009/03/24/iphone-30-javascript-performance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I saw a post on <a href=" http://ajaxian.com/archives/iphone-30-now-with-squirrelfish-extreme">Ajaxian</a> about how iPhone 3.0 might now include SquirrelFish Extreme so I did a quick and dirty using <a href="http://furbo.org/stuff/benchmark.html">this</a>. Here&#8217;s are the results (raw spreadsheet <a href="http://spreadsheets.google.com/pub?key=pWzvxp6lpa4mvXkNtPz2dFg">here</a>).<br />
<img src="http://spreadsheets.google.com/pub?key=pWzvxp6lpa4mvXkNtPz2dFg&#038;oid=1&#038;output=image" /></p>
<p>iPhone 3.0 definitely has something, (whether it&#8217;s SquirrelFish or Nitro), but it&#8217;s 3x-10x faster than iPhone 2.2.</p>
<p>Update: <i>Dear Apple</i>, if this is against the NDA shoot me an email waynepan at me dot com <img src='http://waynepan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2009/03/24/iphone-30-javascript-performance/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Smush It &#8211; Easy Image Optimization</title>
		<link>http://waynepan.com/2008/09/30/smush-it-easy-image-optimization/</link>
		<comments>http://waynepan.com/2008/09/30/smush-it-easy-image-optimization/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 02:23:18 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=255</guid>
		<description><![CDATA[Just came across the ajaxian post about smushit.com which was presented at The Ajax Experience by Stoyan Stefanov and Nicole Sullivan. It&#8217;s a nifty tool that optimizes images on any web page you pass it by using doing lossless compression &#8230; <a href="http://waynepan.com/2008/09/30/smush-it-easy-image-optimization/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://smushit.com"><img src="http://waynepan.com/wp-content/uploads/2008/09/smushit.png" alt="" title="smushit" class="aright size-full wp-image-256" /></a>Just came across the ajaxian post about <a href="http://smushit.com">smushit.com</a> which was presented at The Ajax Experience by Stoyan Stefanov and Nicole Sullivan. It&#8217;s a nifty tool that optimizes images on any web page you pass it by using doing lossless compression or stripping out image meta tags.</p>
<p>I had a little fun with this tool running it on Google.com and Yahoo.com. (Just ignore any png compatibility issues and caching while you read the following&#8230; <img src='http://waynepan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>Google.com has 1 image and SmushIt reports it can be compressed 507 bytes (5.92% savings!) by converting it to a png. Assuming a very conservative 200 million requests a month on google.com alone that&#8217;s a savings of &#8230; if my math is correct &#8230; 100 gigs of bandwidth!</p>
<p>Yahoo.com could save even more, 8310 bytes (12.04% savings). Using the same numbers above that&#8217;s 1,547 gigs of bandwidth in the US alone!</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/09/30/smush-it-easy-image-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SquirrelFish Extreme &#8211; Quick Benchmarks</title>
		<link>http://waynepan.com/2008/09/19/squirrelfish-extreme-quick-benchmarks/</link>
		<comments>http://waynepan.com/2008/09/19/squirrelfish-extreme-quick-benchmarks/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 22:52:03 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=252</guid>
		<description><![CDATA[The recent javascript vm wars harken back to the video card wars of the early 2000&#8242;s where 3dfx, ATI, and NVIDIA where trading blows. Instead of we have Google, WebKit, and Mozilla trading blows by releasing a faster and faster &#8230; <a href="http://waynepan.com/2008/09/19/squirrelfish-extreme-quick-benchmarks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://waynepan.com/wp-content/uploads/2008/09/squirrelfish.png" alt="" title="squirrelfish" width="216" height="135" class="aright size-full wp-image-253" />The recent javascript vm wars harken back to the video card wars of the early 2000&#8242;s where 3dfx, ATI, and NVIDIA where trading blows. Instead of we have Google, WebKit, and Mozilla trading blows by releasing a faster and faster vm at what seems like a weekly rate. </p>
<p>Yesterday WebKit&#8217;s latest salvo is <a href="http://webkit.org/blog/214/introducing-squirrelfish-extreme/">SquirrelFish Extreme</a>. After chuckling a bit at the name, I decided to run it through the same benchmarks as I ran <a href="http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish-ie8-benchmarks/">Chrome through</a>.</p>
<p>WebKit-r36647</p>
<ul>
<li>Dromaeo &#8211; <a href="http://dromaeo.com/?id=43036">7067.20ms</a> (this is what used to be v2.dromaeo.com</li>
<li>SunSpider &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?%7B%223d-cube%22:%5B105,102,109,108,109%5D,%223d-morph%22:%5B131,137,134,135,124%5D,%223d-raytrace%22:%5B83,82,85,63,82%5D,%22access-binary-trees%22:%5B21,22,22,16,21%5D,%22access-fannkuch%22:%5B25,23,32,22,22%5D,%22access-nbody%22:%5B110,118,115,106,113%5D,%22access-nsieve%22:%5B11,0,11,12,11%5D,%22bitops-3bit-bits-in-byte%22:%5B12,12,11,12,12%5D,%22bitops-bits-in-byte%22:%5B18,15,15,15,17%5D,%22bitops-bitwise-and%22:%5B11,11,11,11,11%5D,%22bitops-nsieve-bits%22:%5B29,30,30,31,31%5D,%22controlflow-recursive%22:%5B15,15,14,15,15%5D,%22crypto-aes%22:%5B24,21,21,22,21%5D,%22crypto-md5%22:%5B30,31,31,31,31%5D,%22crypto-sha1%22:%5B33,31,32,33,26%5D,%22date-format-tofte%22:%5B63,64,58,65,63%5D,%22date-format-xparb%22:%5B79,95,82,83,82%5D,%22math-cordic%22:%5B75,75,77,74,76%5D,%22math-partial-sums%22:%5B109,112,112,111,109%5D,%22math-spectral-norm%22:%5B41,40,42,31,40%5D,%22regexp-dna%22:%5B48,47,48,47,48%5D,%22string-base64%22:%5B46,46,49,46,47%5D,%22string-fasta%22:%5B87,92,87,93,88%5D,%22string-tagcloud%22:%5B141,147,147,147,147%5D,%22string-unpack-code%22:%5B99,99,98,99,98%5D,%22string-validate-input%22:%5B110,109,111,112,110%5D%7D">1562.0ms</a></li>
<li>V8 Benchmark &#8211; 720</li>
</ul>
<p>If you take a look at the previous results you&#8217;ll notice that the new SquirrelFish Extreme (SFX) preforms significantly better than Chrome or FF in their own benchmark, SunSpider. It comes within 363 points in the V8 Benchmark tests. Also it holds relatively steady in the dom head tests for Dromaeo. </p>
<p>All and all, SFX isn&#8217;t hardly ready for prime time and it appears that the WebKit team is making significant progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/09/19/squirrelfish-extreme-quick-benchmarks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>V8, TraceMonkey, SquirrelFish, IE8 BenchMarks</title>
		<link>http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish-ie8-benchmarks/</link>
		<comments>http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish-ie8-benchmarks/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 04:09:15 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[dromaeo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[squirrelfish]]></category>
		<category><![CDATA[tracemonkey]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=223</guid>
		<description><![CDATA[After reading about the new JavaScript VM in Google Chrome (called V8) I was wondering how it would stack up against the new JS engines from Mozilla (TraceMonkey) and WebKit (SquirrelFish). I ran 3 tests across all the browsers, including &#8230; <a href="http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish-ie8-benchmarks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="aright size-full wp-image-228" title="chrome_logo" src="http://waynepan.com/wp-content/uploads/2008/09/chrome_logo.png" alt="" width="102" height="68" />After reading about the new JavaScript VM in <a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html">Google Chrome (called V8)</a> I was wondering how it would stack up against the new JS engines from Mozilla (TraceMonkey) and WebKit (SquirrelFish). I ran 3 tests across all the browsers, including IE8, and here are the results.</p>
<p>Setup:</p>
<ul>
<li>Chrome [Build 1583 - 0.2.149.27]</li>
<li>FireFox 3.1 Nightly [1.9.1b1pre/200809020331]<br />
- <em>w/ javascript.options.jit.* set to true except in the SunSpider tests, where jit.content was set to false because it crashes</em>.</li>
<li>WebKit Nightly [r36012]</li>
<li>Internet Explorer 8 [IE8 v8.0.6001.18241]<br />
- <em>I doubt numbers are accurate, asked me once for Chrome tests if I wanted to stop the unresponsive script, about 50x for Dromaeo</em></li>
<li>Windows XP SP3, AMD Athlon 64 X2 3800+, 2GB RAM</li>
<li>Restart each browser after every test</li>
<li><a href="http://webkit.org/perf/sunspider-0.9/sunspider.html">SunSpider</a>, <a href="http://code.google.com/apis/v8/run.html">V8 BenchMark</a>, <a href="http://dromaeo.com/">Dromaeo</a></li>
</ul>
<p><em>Click continue for results and charts&#8230;</em><br />
<span id="more-223"></span><br />
<img class="alignnone size-full wp-image-224" title="dromaeo" src="http://waynepan.com/wp-content/uploads/2008/09/dromaeo.png" alt="" width="471" height="298" /></p>
<ul>
<li>Chrome &#8211; <a href="http://dromaeo.com/?id=25771">610.6ms</a></li>
<li>WebKit &#8211; <a href="http://dromaeo.com/?id=25777">1948.00ms</a></li>
<li>FireFox &#8211; <a href="http://dromaeo.com/?id=25784">1688.20ms</a></li>
<li>IE8 &#8211; 9827.60ms</li>
</ul>
<p><img class="alignnone size-full wp-image-225" title="chrome" src="http://waynepan.com/wp-content/uploads/2008/09/chrome.png" alt="" width="468" height="289" /><br />
<em>Bigger the Better</em></p>
<ul>
<li>Chrome &#8211; 1083</li>
<li>WebKit &#8211; 191</li>
<li>FireFox &#8211; 106</li>
<li>IE8 &#8211; 42</li>
</ul>
<p><img class="alignnone size-full wp-image-226" title="sunspider" src="http://waynepan.com/wp-content/uploads/2008/09/sunspider.png" alt="" width="472" height="306" /></p>
<ul>
<li>Chrome &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?{%223d-cube%22:[39,43,50,43,49],%223d-morph%22:[71,74,71,76,81],%223d-raytrace%22:[56,57,57,60,57],%22access-binary-trees%22:[9,8,8,9,9],%22access-fannkuch%22:[48,50,48,49,48],%22access-nbody%22:[45,42,50,42,51],%22access-nsieve%22:[34,33,33,32,34],%22bitops-3bit-bits-in-byte%22:[7,6,6,6,6],%22bitops-bits-in-byte%22:[13,13,14,13,12],%22bitops-bitwise-and%22:[37,34,34,38,36],%22bitops-nsieve-bits%22:[45,41,50,43,50],%22controlflow-recursive%22:[4,4,4,5,5],%22crypto-aes%22:[36,34,32,34,32],%22crypto-md5%22:[28,25,26,25,27],%22crypto-sha1%22:[23,23,24,23,24],%22date-format-tofte%22:[350,355,353,361,351],%22date-format-xparb%22:[445,443,451,444,447],%22math-cordic%22:[85,95,101,90,93],%22math-partial-sums%22:[60,51,52,55,52],%22math-spectral-norm%22:[20,22,20,24,23],%22regexp-dna%22:[604,614,609,610,607],%22string-base64%22:[86,101,81,97,84],%22string-fasta%22:[88,84,84,85,86],%22string-tagcloud%22:[219,225,219,224,216],%22string-unpack-code%22:[287,294,296,295,294],%22string-validate-input%22:[109,109,108,110,108]}">2846.8ms</a></li>
<li>WebKit &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?%7B%223d-cube%22:%5B39,43,49,42,49%5D,%223d-morph%22:%5B68,74,67,75,84%5D,%223d-raytrace%22:%5B56,56,55,57,55%5D,%22access-binary-trees%22:%5B9,7,10,8,10%5D,%22access-fannkuch%22:%5B48,50,47,48,49%5D,%22access-nbody%22:%5B45,41,50,41,50%5D,%22access-nsieve%22:%5B34,33,33,33,33%5D,%22bitops-3bit-bits-in-byte%22:%5B7,6,7,6,7%5D,%22bitops-bits-in-byte%22:%5B13,12,12,13,12%5D,%22bitops-bitwise-and%22:%5B36,35,34,37,36%5D,%22bitops-nsieve-bits%22:%5B45,42,49,42,49%5D,%22controlflow-recursive%22:%5B4,4,4,4,4%5D,%22crypto-aes%22:%5B36,34,31,34,32%5D,%22crypto-md5%22:%5B27,26,25,25,26%5D,%22crypto-sha1%22:%5B23,23,23,23,24%5D,%22date-format-tofte%22:%5B350,352,342,354,345%5D,%22date-format-xparb%22:%5B447,455,441,440,445%5D,%22math-cordic%22:%5B84,95,93,86,98%5D,%22math-partial-sums%22:%5B60,52,54,52,52%5D,%22math-spectral-norm%22:%5B23,21,21,20,22%5D,%22regexp-dna%22:%5B604,602,601,603,601%5D,%22string-base64%22:%5B91,91,80,93,83%5D,%22string-fasta%22:%5B85,83,83,83,85%5D,%22string-tagcloud%22:%5B222,223,220,218,216%5D,%22string-unpack-code%22:%5B283,289,288,286,291%5D,%22string-validate-input%22:%5B110,109,109,109,109%5D%7D">4105.0ms</a></li>
<li>FireFox &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?%7B%223d-cube%22:%5B453,453,453,453,469%5D,%223d-morph%22:%5B375,375,391,375,390%5D,%223d-raytrace%22:%5B422,422,422,422,421%5D,%22access-binary-trees%22:%5B297,297,296,312,312%5D,%22access-fannkuch%22:%5B890,907,906,890,906%5D,%22access-nbody%22:%5B469,453,453,453,453%5D,%22access-nsieve%22:%5B344,343,344,328,328%5D,%22bitops-3bit-bits-in-byte%22:%5B250,235,250,250,234%5D,%22bitops-bits-in-byte%22:%5B422,422,422,422,406%5D,%22bitops-bitwise-and%22:%5B531,531,531,516,531%5D,%22bitops-nsieve-bits%22:%5B468,469,468,453,453%5D,%22controlflow-recursive%22:%5B234,218,219,219,234%5D,%22crypto-aes%22:%5B344,359,344,344,360%5D,%22crypto-md5%22:%5B188,187,187,172,172%5D,%22crypto-sha1%22:%5B187,188,187,188,187%5D,%22date-format-tofte%22:%5B437,438,422,422,422%5D,%22date-format-xparb%22:%5B344,344,344,344,344%5D,%22math-cordic%22:%5B485,484,500,484,485%5D,%22math-partial-sums%22:%5B297,281,297,297,281%5D,%22math-spectral-norm%22:%5B297,282,297,281,297%5D,%22regexp-dna%22:%5B594,578,578,594,594%5D,%22string-base64%22:%5B1625,1641,1640,1640,1625%5D,%22string-fasta%22:%5B453,454,453,453,438%5D,%22string-tagcloud%22:%5B375,375,375,375,375%5D,%22string-unpack-code%22:%5B328,328,328,328,328%5D,%22string-validate-input%22:%5B359,360,359,359,359%5D%7D">11427.2ms</a></li>
<li>IE8 &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?%7B%223d-cube%22:%5B453,453,453,453,469%5D,%223d-morph%22:%5B375,375,391,375,390%5D,%223d-raytrace%22:%5B422,422,422,422,421%5D,%22access-binary-trees%22:%5B297,297,296,312,312%5D,%22access-fannkuch%22:%5B890,907,906,890,906%5D,%22access-nbody%22:%5B469,453,453,453,453%5D,%22access-nsieve%22:%5B344,343,344,328,328%5D,%22bitops-3bit-bits-in-byte%22:%5B250,235,250,250,234%5D,%22bitops-bits-in-byte%22:%5B422,422,422,422,406%5D,%22bitops-bitwise-and%22:%5B531,531,531,516,531%5D,%22bitops-nsieve-bits%22:%5B468,469,468,453,453%5D,%22controlflow-recursive%22:%5B234,218,219,219,234%5D,%22crypto-aes%22:%5B344,359,344,344,360%5D,%22crypto-md5%22:%5B188,187,187,172,172%5D,%22crypto-sha1%22:%5B187,188,187,188,187%5D,%22date-format-tofte%22:%5B437,438,422,422,422%5D,%22date-format-xparb%22:%5B344,344,344,344,344%5D,%22math-cordic%22:%5B485,484,500,484,485%5D,%22math-partial-sums%22:%5B297,281,297,297,281%5D,%22math-spectral-norm%22:%5B297,282,297,281,297%5D,%22regexp-dna%22:%5B594,578,578,594,594%5D,%22string-base64%22:%5B1625,1641,1640,1640,1625%5D,%22string-fasta%22:%5B453,454,453,453,438%5D,%22string-tagcloud%22:%5B375,375,375,375,375%5D,%22string-unpack-code%22:%5B328,328,328,328,328%5D,%22string-validate-input%22:%5B359,360,359,359,359%5D%7D">11427.2ms</a></li>
</ul>
<p>Needless to say, Chrome&#8217;s V8 blows away all the current builds of the next-generation of JavaScript VMs. Just to be clear, WebKit and FireFox engines haven&#8217;t even hit beta, but it looks like the performance bar has just been set to an astronomical height by the V8 Team.</p>
<p><b>Update:</b> Brendan has <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/09/tracemonkey_update.html">has posted new TraceMonkey favorable benchmarks</a> with the latest TraceMonkey build vs V8. A little friendly competition is awesome but since all these projects are open source the community is the real winner here. </p>
<p>Also I downloaded the latest trunk build of FireFox [1.9.1b1pre/20080903034741] and re-ran the tests:</p>
<ul>
<li>SunSpider &#8211; <a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?%7B%223d-cube%22:%5B73,72,63,60,71%5D,%223d-morph%22:%5B45,46,40,46,34%5D,%223d-raytrace%22:%5B110,104,102,99,102%5D,%22access-binary-trees%22:%5B75,74,74,94,75%5D,%22access-fannkuch%22:%5B198,206,201,208,204%5D,%22access-nbody%22:%5B67,56,46,57,52%5D,%22access-nsieve%22:%5B19,21,30,35,18%5D,%22bitops-3bit-bits-in-byte%22:%5B1,2,2,2,2%5D,%22bitops-bits-in-byte%22:%5B11,19,16,12,20%5D,%22bitops-bitwise-and%22:%5B15,26,15,26,15%5D,%22bitops-nsieve-bits%22:%5B38,24,37,38,38%5D,%22controlflow-recursive%22:%5B76,75,65,65,76%5D,%22crypto-aes%22:%5B60,50,49,50,49%5D,%22crypto-md5%22:%5B51,39,49,37,50%5D,%22crypto-sha1%22:%5B17,16,17,18,18%5D,%22date-format-tofte%22:%5B151,139,135,144,150%5D,%22date-format-xparb%22:%5B116,116,118,127,115%5D,%22math-cordic%22:%5B63,42,53,52,56%5D,%22math-partial-sums%22:%5B25,25,25,25,25%5D,%22math-spectral-norm%22:%5B11,11,11,11,11%5D,%22regexp-dna%22:%5B294,283,295,314,306%5D,%22string-base64%22:%5B24,24,24,23,13%5D,%22string-fasta%22:%5B109,115,129,119,115%5D,%22string-tagcloud%22:%5B124,141,151,145,139%5D,%22string-unpack-code%22:%5B277,280,298,266,317%5D,%22string-validate-input%22:%5B77,81,68,70,80%5D%7D">2124.2ms</a></li>
<li>Dromaeo &#8211; <a href="http://dromaeo.com/?id=32031">1736.6ms</a></li>
<li>Chrome Tests &#8211; 113</li>
</ul>
<p>The latest build is definitely optimized for the SunSpider test, even beating V8. However, it still lags behind in Dromaeo and the Chrome Tests. (The V8 team optimized the engine specifically for the Chrome Test so it&#8217;s very biased.)</p>
<p><b>Update 2:</b> Apparently Resig has been working on a <a href="http://v2.dromaeo.com">v2 of Dromaeo</a> that includes a lot more DOM manipulation tests.<br />
<img src="http://waynepan.com/wp-content/uploads/2008/09/dromaeov2.png" alt="" title="dromaeov2" width="479" height="259" class="alignnone size-full wp-image-245" /></p>
<ul>
<li>Chrome &#8211; <a href="http://dromaeo.com/?id=32437">10800.8ms</a></li>
<li>WebKit &#8211; <a href="http://dromaeo.com/?id=32097">6456.6ms</a></li>
<li>FireFox &#8211; <a href="http://dromaeo.com/?id=32078">10119.8ms</a></li>
<li>IE8 &#8211; DNF (Too many &#8220;slow script&#8221; interruptions)</li>
</ul>
<p>Chrome and FireFox are evenly matched here. WebKit comes out on top&#8230;</p>
<p>Also, being the JavaScript ninja that he is, <a href="http://ejohn.org/blog/javascript-performance-rundown/">John Resig has a much better write up on the topic than I</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish-ie8-benchmarks/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Dissecting ShareThis Widget (BAD) Javascript Code</title>
		<link>http://waynepan.com/2008/04/21/dissecting-sharethis-widget-bad-javascript-code/</link>
		<comments>http://waynepan.com/2008/04/21/dissecting-sharethis-widget-bad-javascript-code/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 08:14:02 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sharethis]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=124</guid>
		<description><![CDATA[I just installed the ShareThis button on this blog so I cracked open the javascript payload. You can view it here. In short, it&#8217;s horrific! It pains me to see this because this is a widget which means this code &#8230; <a href="http://waynepan.com/2008/04/21/dissecting-sharethis-widget-bad-javascript-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href='http://sharethis.com'><img src="http://waynepan.com/wp-content/uploads/2008/04/sharethis_logo_tm.gif" alt="" title="sharethis_logo_tm" width="197" height="40" class="aright" /></a>I just installed the <a href="http://sharethis.com/">ShareThis</a> button on this blog so I cracked open the javascript payload. You can <a href="http://w.sharethis.com/widget/">view it here</a>. In short, it&#8217;s horrific! It pains me to see this because this is a widget which means this code is running a million times a day!</p>
<p>First, let&#8217;s get some basics out of the way.</p>
<ul>
<li>Comments and white-spaces are left in the code, increasing the payload size. I suggest using <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> before posting the code.</li>
<li><i>Lines 1-3</i> &#8211; MooTools is included at the top of the script, PACKED. Thanks to <a href="http://jst.pbwiki.com/summary.php">PB Wiki&#8217;s Tests</a>, we now know this is bad for client side performance. Stop doing this, see above!</li>
<li><i>Lines 3-12</i> &#8211; They&#8217;ve included the FireBug Lite code to account for the 5 occurrences where they use console. Remove the 5 debug statements that don&#8217;t do squat and you can shave off ~350 bytes</li>
</ul>
<p>Doing the above netted a 6940 bytes savings or a script 65% the size of the original (not to mention the client side cycles shaved off by removing the packed mootools). Click the link below to view it.</p>
<blockquote><p>
13048 Apr 21 00:17 <a href="http://waynepan.com/wp-content/uploads/2008/04/sharethis_widget_better.js">sharethis_widget_better.js</a><br />
19988 Apr 21 00:18 <a href="http://waynepan.com/wp-content/uploads/2008/04/sharethis_widget_original.js">sharethis_widget_original.js</a>
</p></blockquote>
<p>Digging into the code further I found a lot of various space saving things that could be done in the code (using radix in parseInt, avoiding at least one try catch block <i>83-89</i>, etc). Also a few oddities like lines <i>329 &#8211; 332</i> (which looks like a bug), just asking for trouble by using _s in the global space, and wtf is going on with lines <i>460-464</i>? Declaring _query to be [] then passing it to the ShareThis object, which from what I can tell doesn&#8217;t do anything, then setting the query property again to _query (which is really []) and then pointlessly setting a variable st to the newly created ShareThis. </p>
<p>I know I&#8217;m guilty of writing bad javascript also, but if you&#8217;re a company distributing a widget you should at least clean up the code a tad&#8230; ironically the ShareThis widget appears immediately after this line. =|</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/04/21/dissecting-sharethis-widget-bad-javascript-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Report: First Javascript SF Meetup</title>
		<link>http://waynepan.com/2008/04/20/report-first-javascript-sf-meetup/</link>
		<comments>http://waynepan.com/2008/04/20/report-first-javascript-sf-meetup/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 06:44:07 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[280north]]></category>
		<category><![CDATA[crockford]]></category>
		<category><![CDATA[flotr]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sproutcore]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=122</guid>
		<description><![CDATA[I had the pleasure of attending the first Javascript SF meetup at the Hi5 offices a couple days ago. It was a rather large turn out with some great demos. The main themes of the night were Canvas and Javascript &#8230; <a href="http://waynepan.com/2008/04/20/report-first-javascript-sf-meetup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I had the pleasure of attending the first <a href="http://javascript.meetup.com/4/calendar/7519957/">Javascript SF meetup</a> at the Hi5 offices a couple days ago. It was a rather large turn out with some great demos. The main themes of the night were Canvas and Javascript frameworks to develop desktop apps. A few thoughts on the talks:</p>
<p><a href="http://www.sproutcore.com/"><img src="http://waynepan.com/wp-content/uploads/2008/04/sproutcore.png" alt="" title="sproutcore" width="150" height="36" class="aright" /></a>First up was <a href="http://www.sproutcore.com/">SproutCore</a> presented by <a href="http://www.okito.net/">Charles Jolley</a> which is what I would imagine if Javascript and Ruby on Rails had a love child together. The basic premise is to allow you to develop desktop type apps with javascript and ruby. The best part of the app is the <a href="http://www.sproutcore.com/documentation/getting-started/">build system</a> which merges all your javascript and css, even spriting your images. </p>
<p><a href="http://www.amazon.com/gp/product/0596517742?ie=UTF8&#038;tag=wapasbl-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596517742"><img class='aright' border="0" src="http://ecx.images-amazon.com/images/I/51UHglbU2UL._SL160_.jpg"/></a>After SproutCore, <a href="http://www.crockford.com/">Douglas Crockford</a> came to pimp his new book <a href="http://www.amazon.com/gp/product/0596517742?ie=UTF8&#038;tag=wapasbl-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596517742">JavaScript: The Good Parts</a>. Ajaxian <a href="http://ajaxian.com/archives/javascript-the-good-parts">joked</a> that it would be a 2-pager at most <img src='http://waynepan.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  but Crockford said it would easily the densest book about javascript (weighing in 120 pages). A quote from the book:<br />
<blockquote>Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that’s more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code.</p></blockquote>
<p> I&#8217;ll definitely be picking this one up. <img src="http://www.assoc-amazon.com/e/ir?t=wapasbl-20&#038;l=as2&#038;o=1&#038;a=0596517742" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p><a href="http://www.solutoire.com/flotr"><img src="http://waynepan.com/wp-content/uploads/2008/04/flotr.png"class='aright' alt="" title="flotr" width="150" height="81" /></a>Somebody (I don&#8217;t recall who) mentioned <a href="http://www.solutoire.com/flotr">flotr</a>, a javascript charting library. It&#8217;s been around for a while but this is the first I&#8217;ve looked at it. There are definite benefits in doing charting in canvas versus flash but my worry is IE6 and 7 support. Even though IE 6/7 are supported through ExCanvas, I still don&#8217;t feel comfortable with the landscape.</p>
<p><a href='http://280slides.com/'><img src="http://waynepan.com/wp-content/uploads/2008/04/280northlogo5.png" alt="" title="280northlogo5" width="150" height="115" class="aright" /></a>Easily the best presso of the night was from the <a href="http://280north.com">280 North</a> founders showing off not only their upcoming app <a href="http://280slides.com/signup.php">280 Slides</a> but the framework that it is built on. <a href="http://blog.rossboucher.com/">Ross Boucher</a> and crew asked the folks to keep the wraps on what was shown at the meetup so I won&#8217;t delve into it much more. All I can say is the app is far superior to any of the current online slideshow offerings out there right now. It basically looked and functioned (very speedily too!) like a normal desktop application. The framework which has been in development for over 2 years is unlike anything out right now. I&#8217;m not sold on it yet but they stated that their plan is to open source it so I&#8217;m looking forward to getting my hands on it when they do.</p>
<p>By far the funniest moment of the night was when <a href="http://yehudakatz.com/">Yehuda Katz</a> was demoing <a href="http://code.google.com/p/ruby-spidermonkey/">ruby-spidermonkey</a>. Right before he showed an example using &#8216;with&#8217;, he turns to Crockford and says &#8220;Sorry Doug&#8221;. <img src='http://waynepan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The entire room started laughing which meant everybody in attendance was a bonafide javascript geek. Awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/04/20/report-first-javascript-sf-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quirky mousemove Event Firing</title>
		<link>http://waynepan.com/2008/04/07/quirky-mousemove-event-firing/</link>
		<comments>http://waynepan.com/2008/04/07/quirky-mousemove-event-firing/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 18:46:07 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://waynepan.com/2008/04/07/quirky-mousemove-event-firing/</guid>
		<description><![CDATA[PPK, of quriksmode.org fame, has been busy updating his events compatibility table and has uncovered some interesting bugs in the mousemove event. When doing my new mousemove test I found a bug in IE5-7 that I was previously unaware of. When &#8230; <a href="http://waynepan.com/2008/04/07/quirky-mousemove-event-firing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>PPK, of <a href="http://www.quirksmode.org/">quriksmode.org</a> fame, has been busy updating his events compatibility table and has uncovered some interesting bugs in the mousemove event.</p>
<blockquote><p> When doing my new mousemove test I found a bug in IE5-7 that I was previously unaware of. When the user moves the mouse over the element, the mousemove event fires many times, as it should. However, when the user stops moving the mouse, IE5-7 continues firing the event every once in a while. This stops only when the mouse leaves the target element entirely.This is obviously a bug: when the mouse does not move the mousemove event should not fire.  </p></blockquote>
<p>On top of that he&#8217;s stating that the bug has been copied by the Safari and Opera team. I think it has less to do with the browser implementations with more with operating system oddities.</p>
<p>For example, OS X Firefox 2 mousemove events are triggered when Firefox is brought back into focus (using cmd-tab, no mouse movement). However, on Windows XP sp2 Firefox does not display the same behavior! You can say this is a bug for Firefox&#8217;s mousemove event implementation or you can push that on the operating system for sending a mousemove event to firefox itself. Six in one hand, half dozen in the other.</p>
<p>Also interestingly, Safari 3 on OS X, the mousemove events are fired every time a key is depressed and then released! On Windows XPsp2 IE6, the mousemove events are triggered anytime the screen is redrawn. You can all sorts of fun yourself with PPK&#8217;s <a href="http://www.quirksmode.org/js/events/mousemove.html">test page</a>.</p>
<p>The bottom line is that if you happen to attach logic to the mousemove event just make sure it&#8217;s safe to call multiple times.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/04/07/quirky-mousemove-event-firing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finally, an Acid Test That Matters!</title>
		<link>http://waynepan.com/2008/01/14/finally-an-acid-test-that-matters-2/</link>
		<comments>http://waynepan.com/2008/01/14/finally-an-acid-test-that-matters-2/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 22:53:27 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://waynepan.com/2008/01/14/finally-an-acid-test-that-matters-2/</guid>
		<description><![CDATA[The first Acid test was essentially to test browser compatibility for the box model. The Acid2 (try it out in the browser you&#8217;re on, Safari3 passes btw) test focused on HTML/CSS for static content. Now Acid3 is being developed and &#8230; <a href="http://waynepan.com/2008/01/14/finally-an-acid-test-that-matters-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://waynepan.com/wp-content/uploads/2008/01/acid3-ref1.png" alt="acid3-ref1.png" /><br />
The first Acid test was essentially to test browser compatibility for the box model. The <a href="http://www.webstandards.org/action/acid2/">Acid2</a> (try it out in the browser you&#8217;re on, Safari3 passes btw) test focused on HTML/CSS for static content.</p>
<p>Now Acid3 is being developed and will focus on the dynamic portion of the web, ie javascript.  Finally, an Acid test I can get behind! The other Acid tests merely pointed out inconstancies in very edge cases of css and html rendering; not very useful. Acid3 ensures that javascript code written adheres to the ECMAScript spec, which is much more important in my mind.</p>
<p><a href="http://ejohn.org/blog/acid3-tackles-ecmascript/">John Resig</a> has a good summary of the <strong>draft</strong> along with renders of the test in different browsers. (<a href="http://browsershots.org/http://hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html">Many more here.</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/01/14/finally-an-acid-test-that-matters-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random Things&#8230;</title>
		<link>http://waynepan.com/2007/11/19/random-things/</link>
		<comments>http://waynepan.com/2007/11/19/random-things/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 20:26:32 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[gphone]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://waynepan.com/2007/11/19/random-things/</guid>
		<description><![CDATA[Some things that have been spinning around in my head that don&#8217;t deserve a whole post&#8230; There was a good post on Ajaxian on the subject of unobtrusive javascript. It points to an outstanding article written by Christian Heilmann called &#8230; <a href="http://waynepan.com/2007/11/19/random-things/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some things that have been spinning around in my head that don&#8217;t deserve a whole post&#8230;</p>
<p>There was a good post on <a href="http://ajaxian.com/archives/unobtrusive-javascript-rules-to-work-by">Ajaxian</a> on the subject of unobtrusive javascript. It points to an outstanding article written by Christian Heilmann called <a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/">The seven rules of Unobtrusive JavaScript</a>. I understand unobtrusive javascript, what it means, and the reasons why it&#8217;s needed. However, there are a few times when it&#8217;s just not practical. For example, if your application heavily depends on javascript then having a hard rule to always use unobtrusive javascript doesn&#8217;t make much sense.</p>
<p>You can actually gain a few things doing the opposite like performance and even save developing time. (See the video posted on yuiblog.com &#8211; <a href="http://yuiblog.com/blog/2007/08/29/video-smarr/">Joseph Smarr: “High-Performance JavaScript: Why Everything You’ve Been Taught is Wrong”</a>)</p>
<p>Naturally, it&#8217;s best practice to use unobtrusive whenever possible, but when pragmatic enough I can see both sides of the coin.</p>
<p>For all you designers out there, <a href="http://www.styleignite.com/articles/view/analysis-of-web-20-design-layout-trends-part-1-clean-colorful-and-horizontally-divided">Style Ignite</a> has a very nice article about tracking the web 2.0 trend of horizontally divided pages. Out of those samples, I like <a href="http://www.wishlistr.com/">Wishlistr.com</a> the best.</p>
<p>Normally I read <a href="http://www.pcmag.com/article2/0,2704,2212850,00.asp">John Dvorak&#8217;s</a> column with a grain of salt (I mean when you make a thousand outrageous predictions, you&#8217;re bound to strike gold once in a while), but he had an interesting thing to say about the GooglePhone that puts things into perspective.</p>
<blockquote><p>People have had eons to program for the Windows smartphones and nothing has come of it. What&#8217;s so different now?</p></blockquote>
<p>Puts the whole OHA/Android thing into perspective doesn&#8217;t it.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2007/11/19/random-things/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 Reasons to Use jQuery UI (and 3 Reasons to Avoid It)</title>
		<link>http://waynepan.com/2007/09/19/5-reasons-to-use-jquery-ui-and-3-reasons-to-avoid-it/</link>
		<comments>http://waynepan.com/2007/09/19/5-reasons-to-use-jquery-ui-and-3-reasons-to-avoid-it/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 06:58:40 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://waynepan.com/2007/09/19/5-reasons-to-use-jquery-ui-and-3-reasons-to-avoid-it/</guid>
		<description><![CDATA[Yesterday, the jQuery team released their jQuery UI library which brings much needed UI components to an already stellar AJAX framework. Many developers love jQuery because of it&#8217;s simplicity and ability to get shit done quickly. It&#8217;s not an overly &#8230; <a href="http://waynepan.com/2007/09/19/5-reasons-to-use-jquery-ui-and-3-reasons-to-avoid-it/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ui.jquery.com/"><img src="http://waynepan.com/wp-content/uploads/2007/09/picture-3.png" class="aright" alt="picture-3.png" /></a>Yesterday, the jQuery team released their jQuery UI library which brings much needed UI components to an already stellar AJAX framework. Many developers love jQuery because of it&#8217;s simplicity and ability to get shit done quickly. It&#8217;s not an overly bloated library (read: Dojo 0.4) and it&#8217;s wick fast. So why would you want to use jQuery UI over say other frameworks like <a href="http://www.extjs.com">Ext JS</a> or <a href="http://script.aculo.us/">script.aculo.us</a>? Well here&#8217;s my top 5 reasons to use this new framework, plus 3 reasons to avoid it.</p>
<h2>5 Reasons to Use jQuery UI</h2>
<ol>
<li><u><strong>Stick with One Library</strong></u><br />
The obvious reason for using jQuery UI is that you&#8217;re already using jQuery. Now you won&#8217;t have to bring in another library to satisfy your UI needs. You can take advantage of all the widgets and interaction tools that jQuery UI supports without having to maintain and learn another library. Not that mixing libraries is a bad thing, you can definitely use multiple libraries in one project and cherry picking the best components out of each.</li>
<li><u><strong>Excellent Documentation</strong></u><br />
I&#8217;ve always liked jQuery for the excellent documentation they provide. Not only is it up to date but it&#8217;s also cleanly organized. Each function/component has a full explanation and an example + source code. The most frustrating thing when using a library is not being able to find information. The whole point to use a library is to make development <em>easier</em> and good documentation definitely helps.</p>
<p>Just compare the <a href="http://docs.jquery.com/UI">jQuery docs</a> to <a href="http://dojotoolkit.org/docs/api">Dojo docs</a> (which is actually down as of this writing) to <a href="http://wiki.script.aculo.us/scriptaculous/">script.aculo.us docs</a> to <a href="http://docs.mootools.net/">mootools</a> to <a href="http://mochikit.com/doc/html/MochiKit/index.html">mochikit</a>. (Don&#8217;t look at YUI or Ext JS, their docs are great!)</li>
<li><u><strong>Magnifier</strong></u><br />
<img src="http://waynepan.com/wp-content/uploads/2007/09/picture-4.png" alt="picture-4.png" /><br />
Not a new effect, but definitely the easiest way to get this effect on your page. See the <a href="http://docs.jquery.com/UI/Magnifier">example here</a>. In one line of javascript you have your very own OS X dock widget!</li>
<li><u><strong>Selectables</strong></u><br />
<img src="http://waynepan.com/wp-content/uploads/2007/09/selectables.png" alt="selectables.png" /><br />
I haven&#8217;t used them all, but I&#8217;ve seen very few libraries that have a component that lets you select items like this in javascript. Check out the <a href="http://dev.jquery.com/view/trunk/plugins/ui/tests/selectable.html">demo here</a>. Draw a box around the list items to select them. Now more impressively hit control and select items while skipping others. Awesome.</li>
<li><u><strong>Themes</strong></u><br />
One part of AJAX is beautifying the web and with the upcoming themes competition for jQuery, there should be plenty of themes available. My one knock against most libraries is that there&#8217;s not enough variation in the way the widgets look so one Dojo or Ext JS site starts looks like every other. Redoing themes requires a lot of resources (and talents that AJAX developers usually do not have) so most developers end up picking one of the existing themes.</li>
</ol>
<h2>3 Reasons to Avoid jQuery UI</h2>
<ol>
<li><u><strong>Doesn&#8217;t Support All Browsers Yet</strong></u><br />
Granted this is a brand new project and they warn you ahead of time in their <a href="http://jquery.com/blog/2007/09/17/jquery-ui-interactions-and-widgets/">launch announcement</a>, but so far I&#8217;ve tested Safari, IE6, IE7, and Konquerer. There are various bug in each and on different components. For example the <a href="http://dev.jquery.com/view/trunk/plugins/ui/apps/gallery_advanced/">gallery demo</a> doesn&#8217;t render properly in Safari or Konquerer.</p>
<p>The <a href="http://dev.jquery.com/view/trunk/plugins/ui/demos/ui.shadow.html">Shadow demo</a> fails in IE6. There have been reported issues with the tablesorter in IE7. The point of using an AJAX library is to abstract the browser layer, but if certain components don&#8217;t work on certain browsers, there&#8217;s a problem.</li>
<li><u><strong>Missing Widgets, <strike>Ranged Calendar Date Picker</strike></strong></u><br />
I know I&#8217;m being picky, but the <a href="http://docs.jquery.com/Plugins/Calendar">calendar widget</a> doesn&#8217;t do date ranges. You can get around this, but at first glance I don&#8217;t see an option where I can set a min/max date. Compared to the <a href="http://developer.yahoo.com/yui/examples/calendar/index.html">YUI calendar widget</a>, the options are sparse here. If you&#8217;ve ever done any decent amount of web work, you&#8217;ll know that a good calendaring widget is essential.</p>
<p><b>Update:</b> Okay, I missed the plethora of options available in the Calendaring widget. Thanks to Marc Grabanski, calendaring widget developer, for pointing me to a more <a href="http://marcgrabanski.com/code/jquery-calendar/">robust demo</a> which shows that it&#8217;s configurable than I had first thought. <i>It definitely does do date ranges.</i></p>
<p>My original point was that jQuery is still missing a few UI widgets; common ones such as a tree widget and a menu widget and lesser used ones such as a WYSIWYG or autocomplete. I don&#8217;t doubt that these things will come as the library matures but they&#8217;re not in the current release.
</li>
<li><u><strong>Inconsistency in the API</strong></u><br />
jQuery was done by a team of contributors, each doing their own components and it shows. For example, the <a href="http://docs.jquery.com/UI/Accordion">accordion control</a> is essentially the same thing functionally to the <a href="http://docs.jquery.com/UI/Tabs">tab control</a>. Yet the activate a tab programmatically the call is tabsClick() while the accordion control is activate(). The tab control also has many more hooks such as disable, remove, add, etc&#8230; the accordion control has none of this functionality.</li>
</ol>
<p>The jQuery UI library definitely has some high points, but I think it was launched a bit too early. The depth of existing AJAX frameworks simply outshines it. However, as it matures, I&#8217;m positive the team will keep up the high quality that has made jQuery massively popular.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2007/09/19/5-reasons-to-use-jquery-ui-and-3-reasons-to-avoid-it/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
