<?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>Global Nerdy &#187; Python</title>
	<atom:link href="http://www.globalnerdy.com/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Thu, 11 Mar 2010 16:59:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open Source Language Roundtable Webcast: Wednesday, July 22nd</title>
		<link>http://www.globalnerdy.com/2009/07/20/open-source-language-roundtable-webcast-wednesday-july-22nd/</link>
		<comments>http://www.globalnerdy.com/2009/07/20/open-source-language-roundtable-webcast-wednesday-july-22nd/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 05:27:42 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[O'Reiilly]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[webcasts]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/07/20/open-source-language-roundtable-webcast-wednesday-july-22nd/</guid>
		<description><![CDATA[
O’Reilly’s conference on Open Source, OSCON, takes place this week in San Jose, California. One of the events taking place at OSCON is the Open Source Language Roundtable, the abstract for which appears below:
We all have our favorite languages in our tool-belt, but is there a &#8216;best&#8217; overall language? If anyone can hash that out, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.oreillynet.com/pub/e/1386"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="oscon_language_roundtable" border="0" alt="oscon_language_roundtable" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/oscon_language_roundtable.jpg" width="403" height="496" /></a></p>
<p>O’Reilly’s conference on Open Source, <strong><a href="http://conferences.oreilly.com/oscon">OSCON</a></strong>, takes place this week in San Jose, California. One of the events taking place at OSCON is the <strong><a href="http://www.oreillynet.com/pub/e/1386">Open Source Language Roundtable</a></strong>, the abstract for which appears below:</p>
<blockquote><p>We all have our favorite languages in our tool-belt, but is there a &#8216;best&#8217; overall language? If anyone can hash that out, it will be the members of this roundtable discussion, some of the stars of the open source language space. This wide-ranging session, hosted and moderated by the O&#8217;Reilly Media editorial staff, and broadcast live on the web, will try to identify the best and worst features of each language, and which are best for various types of application development.</p>
</blockquote>
<p>The roundtable will me moderated by O’Reilly Media’s James Turner and will cover the following languages, listed below with the corresponding panelist:</p>
<ul>
<li><strong>Java:</strong> Rod Johnson (SpringSource)</li>
<li><strong>Perl:</strong> Jim Brandt (Perl Foundation)</li>
<li><strong>PHP:</strong> Laura Thomason (Mozilla)</li>
<li><strong>Python:</strong> Alex Martelli (Google)</li>
<li><strong>Ruby:</strong> Brian Ford (Engine Yard)</li>
</ul>
<p><strong>You can catch this roundtable even if you’re not going to be at OSCON because O’Reilly is webcasting the event.</strong> It takes place this Wednesday, July 22nd at 10pm EDT (7 pm Pacific) and is expected to run 90 minutes. It costs nothing to catch the webcast and you’ll even be able to ask the panelists questions via chat, but you’ll need to <a href="http://post.oreilly.com/rd/9z1z95hii30q4hc8e9c5r74c4s1cl6b97qsp4ivvp0o">register</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/07/20/open-source-language-roundtable-webcast-wednesday-july-22nd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hanselman Podcast on IronPython / A Great Book Deal</title>
		<link>http://www.globalnerdy.com/2009/04/28/hanselman-podcast-on-ironpython-a-great-book-deal/</link>
		<comments>http://www.globalnerdy.com/2009/04/28/hanselman-podcast-on-ironpython-a-great-book-deal/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:44:13 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Interviews]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Burning Man]]></category>
		<category><![CDATA[Hanselminutes]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Michael Foord]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scott Hanselman]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/04/28/hanselman-podcast-on-ironpython-a-great-book-deal/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
 
When I got into web development, I considered myself a latecomer to the game, and that was in 1999. In the five years I’d been working professionally as a developer, my apps were strictly desktop – multimedia CD-ROM stuff done in Director (then a product of Macromedia) [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/04/28/hanselman-podcast-on-ironpython-a-great-book-deal.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<p><a href="http://www.hanselman.com/blog/HanselminutesPodcast159IronPythonInActionWithMichaelFoord.aspx"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cover of &quot;IronPython in Action&quot;" border="0" alt="Cover of &quot;IronPython in Action&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/04/ironpython-in-action.jpg" width="192" height="244" /></a> </p>
<p><strong>When I got into web development, I considered myself a latecomer to the game, and that was in 1999.</strong> In the five years I’d been working professionally as a developer, my apps were strictly desktop – multimedia CD-ROM stuff done in Director (then a product of Macromedia) and business productivity apps written in pre-.NET VB and Java-a-la-JBuilder.</p>
<p>The company with whom I’d landed a contract had a contrarian tech lead. It seemed that the web app world was building their stuff on Linux, Perl and MySQL, and this guy was all about BSD, Python and PostgreSQL. In 1999 terms, he was a freak even amongst the freaks.</p>
<p>I had a pretty full schedule that summer, followed by a one-week vacation at <a href="http://www.burningman.com/whatisburningman/">Burning Man</a>, followed by the start of my contract at this new company. The tech lead wanted me to be ready to do some coding on my first day in, so I brought a copy of O’Reilly’s <em>Learning Python</em> along with my laptop to Black Rock Desert, hoping to squeeze in some hacking time at the big desert bacchanal. Luckily, Burning Man is pretty mellow during the day, and in an additional stroke of luck, the neighbouring camp was sharing AC power from their “eggbeater” windmill. I learned Python by writing sample apps in an extremely distracting environment, and because of that, I fell quite in love with the language. Any language that you can learn while naked people playing the tuba on unicycles are circling you has to be a good one.</p>
<p>That’s why I’m glad to see that implementations like IronPython exist, and that they tie into things like the .NET framework and Silverlight. IronPython’s performance is quite close to standard Python, and I use it along with IronRuby as my scripting language for automating tasks and doing little “housekeeping” things on my systems. I’m not using IronPython to the degree that <a href="http://www.voidspace.org.uk/python/weblog/index.shtml">Michael Foord</a><strong></strong> is – he’s using it for full-on .NET applications instead of C# or VB! <strong><a href="http://www.hanselman.com/blog/HanselminutesPodcast159IronPythonInActionWithMichaelFoord.aspx">Scott Hanselman talks with him about working with IronPython as his primary development language in the latest edition of his <em>Hanselminutes</em> podcast.</a></strong></p>
<p>As an added bonus, <a href="http://www.hanselman.com/blog/HanselminutesPodcast159IronPythonInActionWithMichaelFoord.aspx">the blog entry for the podcast</a> has a special limited-time coupon code that will save you 40% off the price of Manning Publications’ <a href="http://www.manning.com/foord/"><em><strong>IronPython in Action</strong></em></a> (which Foord co-wrote), and the discount applies to both the dead-tree and PDF versions of the book. At 40% off, the PDF version is a mere USD$16.50 (CAD$20.14 at the time of this writing).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/04/28/hanselman-podcast-on-ironpython-a-great-book-deal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Named Parameters in Method Calls: Python Si, Ruby No</title>
		<link>http://www.globalnerdy.com/2009/03/16/named-parameters-in-method-calls-python-si-ruby-no/</link>
		<comments>http://www.globalnerdy.com/2009/03/16/named-parameters-in-method-calls-python-si-ruby-no/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[named arguments]]></category>
		<category><![CDATA[named parameters. method calls]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/03/16/named-parameters-in-method-calls-python-si-ruby-no/</guid>
		<description><![CDATA[ In an earlier article, Default and Named Parameters in C# 4.0 / Sith Lord in Training, I wrote about how C# 4.0 – that’s the version coming out with the next release of Visual Studio, known as Visual Studio 2010 – is going to provide support for named parameters.
In that article, I also incorrectly [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="&quot;Hello My Name Is&quot; sticker" border="0" alt="&quot;Hello My Name Is&quot; sticker" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/03/hello-my-name-is-sticker.jpg" width="241" height="206" /> In an earlier article, <em><strong><a href="http://www.globalnerdy.com/2009/03/12/default-and-named-parameters-in-c-40-sith-lord-in-training/">Default and Named Parameters in C# 4.0 / Sith Lord in Training</a></strong></em>, I wrote about how C# 4.0 – that’s the version coming out with the next release of Visual Studio, known as <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">Visual Studio 2010</a> – is going to provide support for named parameters.</p>
<p>In that article, I also <em>incorrectly </em>stated that Ruby supported named parameters. Luckily, <a href="http://www.globalnerdy.com/2009/03/12/default-and-named-parameters-in-c-40-sith-lord-in-training/#comment-3982">Jörg W Mittag spotted my mistake an corrected me in a comment</a>. I’ve since corrected the article and thought I’d show you how I got it wrong in the first place.</p>
<h3>Ruby and My Named Parameter Goof</h3>
<p>I had a vague recollection of Ruby accepting named parameters. I figured I’d be empirical and fired up <strong>irb</strong> – the Ruby REPL shell – and put together a quick little method to see if the recollection was correct:</p>
<blockquote><pre># Ruby 1.8.6
def test_named_params(first, second)
    puts &quot;#{first}\n#{second}&quot;
end</pre>
</blockquote>
<p>Once put together, I made some test calls to the method:</p>
<blockquote>
<pre>

# irb session (Ruby 1.8.6)
irb(main):&gt; <strong>test_named_params(&quot;alpha&quot;, &quot;beta&quot;)</strong>
alpha
beta

=&gt; nil

irb(main):&gt; <strong>test_named_params(first = &quot;alpha&quot;, second = &quot;beta&quot;)</strong>
alpha
beta

=&gt; nil
</pre>
</blockquote>
<p>Seeing that the interpreter didn’t choke on that named parameter call, I thought to myself “Vague recollection confirmed, Ruby supports named parameters!” and wrote the blog article.</p>
<p>Had my brain actually been firing on all cylinders, I would’ve given the method a proper test by providing the named parameters out of the order in which they appear in the method signature. Here’s what I would’ve seen:</p>
<blockquote>
<pre># irb session (Ruby 1.8.6)
irb(main):&gt; <strong>test_named_params(second = &quot;alpha&quot;, first = &quot;beta&quot;)</strong>
alpha
beta


=&gt; nil

</pre>
</blockquote>
<p>Uh-oh. If named parameters worked, the first output line would be “beta” and the second would be “alpha”. Clearly something’s wrong with my recollection.</p>
<p>Let’s try some <em>non-existent</em> named parameters – say, ones involving current entertainemtn news headlines &#8212; just to see what happens:</p>
<blockquote>
<pre># irb session (Ruby 1.8.6)
irb(main):&gt; <strong>test_named_params(lindsay_lohan_dui = &quot;alpha&quot;,
jim_cramer_smackdown = &quot;beta&quot;)</strong>


alpha

beta

=&gt; nil
</pre>
</blockquote>
<p>Even with nonsensical named parameters, the method is still accepting the values in order. Why is that?</p>
<p>Just about everything in Ruby has a return value (which can be anything, including <code>nil</code>). You can see for yourself in irb – here’s a quick do-nothing method definition:</p>
<blockquote>
<pre>irb(main)&gt; <strong>def doNothing
</strong>irb(main)&gt; <strong>end</strong>
=&gt; nil</pre>
</blockquote>
<p>As you can see. defining a method returns a value of <code>nil</code>. </p>
<p>As Jorg pointed out, Ruby assignment statements return a value: the value used in the assigment. Once again, for proof, I&#8217;ll use an example from an irb session. In the example below, assigning the string <code>&quot;alpha&quot;</code> to the variable <code>first</code> also returns the string <code>&quot;alpha&quot;</code>:</p>
<blockquote>
<pre># irb session (Ruby 1.8.6)
irb(main):&gt; <strong>first = &quot;alpha&quot;</strong>=&gt; &quot;alpha&quot;</pre>
</blockquote>
<p>In the call to <code>test_named_params</code>, the Ruby interpreter was interpreting my “named parameters” as assignment statements. <code>first = &quot;alpha&quot;</code> evaluates to plain old <code>&quot;alpha&quot;</code>, but so does <code>second = &quot;alpha&quot;</code> (and for that matter, so does <code>lindsay_lohan_dui = &quot;alpha&quot;</code>). Each assignment statement in my parameter list was evaluated, and then those values were passed to method in positional order.</p>
<h3>Python Supports Named Parameters</h3>
<p>After getting the comment from Jorg and correcting my article, I wondered why I thought Ruby supported named parameters. Then it hit me – it’s Python.</p>
<p>So I fired up the Python REPL and put together this quick little method:</p>
<blockquote>
<pre># Python 3.0
def test_named_params(first, second):
    print(&quot;%s\n%s&quot; % (first, second))</pre>
</blockquote>
<p>And this time, I decided to be a little more thorough in my testing:</p>
<blockquote>
<pre># Python 3.0 REPL
&gt;&gt;&gt; <strong>test_named_params(&quot;alpha&quot;, &quot;beta&quot;)</strong>
alpha
beta

&gt;&gt;&gt; <strong>test_named_params(first = &quot;alpha&quot;, second = &quot;beta&quot;)</strong>
alpha
beta

&gt;&gt;&gt; <strong>test_named_params(second = &quot;alpha&quot;, first = &quot;beta&quot;)</strong>
beta
alpha</pre>
</blockquote>
<p>And some additional searching on the web confirmed that yes, Python method calling does in fact support named parameters.</p>
<p>So in conclusion, when it comes to named parameters, it’s <em>Python si, Ruby no</em>…and <em>C# <a href="http://dictionary.reverso.net/english-spanish/soon">pronto</a></em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/03/16/named-parameters-in-method-calls-python-si-ruby-no/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Security Through Python</title>
		<link>http://www.globalnerdy.com/2008/08/25/security-through-python/</link>
		<comments>http://www.globalnerdy.com/2008/08/25/security-through-python/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 16:56:27 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Photo]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1334</guid>
		<description><![CDATA[While this is actually not about computer security nor about the Python programming language (which I&#8217;ll cover in some articles soon), I thought my Pythonista readers might find it amusing&#8230;

&#8230;for the real story behind this photo, see this article in the Daily Mail.
]]></description>
			<content:encoded><![CDATA[<p></p><p>While this is actually <em>not</em> about computer security nor about the Python programming language (which I&#8217;ll cover in some articles soon), I thought my Pythonista readers might find it amusing&#8230;</p>
<p class="center"><a href="http://www.dailymail.co.uk/news/worldnews/article-1047812/Pictured-The-South-African-keeps-car-ssssafe-placing-pythons-dashboard.html"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/08/security_through_python.jpg" alt="Guy freaking out at seeing two pythons on the dashboard of a car" title="Guy freaking out at seeing two pythons on the dashboard of a car" width="600" height="441" /></a></p>
<p>&#8230;for the real story behind this photo, <a href="http://www.dailymail.co.uk/news/worldnews/article-1047812/Pictured-The-South-African-keeps-car-ssssafe-placing-pythons-dashboard.html">see this article in the <cite>Daily Mail</cite></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/08/25/security-through-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Swarm: A Visual History of Python Commits</title>
		<link>http://www.globalnerdy.com/2008/08/07/code-swarm-a-visual-history-of-python-commits/</link>
		<comments>http://www.globalnerdy.com/2008/08/07/code-swarm-a-visual-history-of-python-commits/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 21:05:19 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[timelines]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1176</guid>
		<description><![CDATA[The Code_Swarm video is an interesting visualization of the evolution of the work done on the Python programming language and the people involved, tracing its evolution from late 1990 to mid-2005.
code_swarm &#8211; Python from Michael Ogawa on Vimeo.
The intro for the video says:

In 1991, Guido van Rossum released his Python scripting language to the public.
This [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The <a href="http://www.vimeo.com/1093745?pg=embed&#038;sec=1093745"><strong><cite>Code_Swarm</cite></strong></a> video is an interesting visualization of the evolution of the work done on the Python programming language and the people involved, tracing its evolution from late 1990 to mid-2005.</p>
<p class="center"><object width="400" height="302"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1093745&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1093745&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"></embed></object><br /><span class="caption"><a href="http://www.vimeo.com/1093745?pg=embed&amp;sec=1093745"><strong>code_swarm &#8211; Python</strong></a> from <a href="http://www.vimeo.com/michaelogawa?pg=embed&amp;sec=1093745">Michael Ogawa</a> on <a href="http://vimeo.com?pg=embed&amp;sec=1093745">Vimeo</a>.</span></p>
<p>The intro for the video says:</p>
<blockquote><p>
In 1991, Guido van Rossum released his Python scripting language to the public.</p>
<p>This video will take you through the history of the project, compressed into a fraction of the time.</p>
<p>You will see the names of developers fade in and out of prominence, while the files they work on swirl around them.</p>
<p>Red files are core code. Blue files are documents. Yellow files are modules. The histogram on the bottom tracks the size and time of commits. When a person makes a commit, their name stands out. The files they commit also stand out. Files grow in size every time they are committed. Files and people gradually fade when there is no activity.
</p></blockquote>
<p>[<a href="http://waronfolly.tumblr.com/post/44599365/code-swarm-a-visual-history-of-python-via-foca">Thanks to <cite>The War on Folly</cite>.</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/08/07/code-swarm-a-visual-history-of-python-commits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>50 Python Modules for all Needs</title>
		<link>http://www.globalnerdy.com/2008/06/16/50-python-modules-for-all-needs/</link>
		<comments>http://www.globalnerdy.com/2008/06/16/50-python-modules-for-all-needs/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 20:38:48 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/?p=1733</guid>
		<description><![CDATA[50 Modules for all Needs is an entry at CatsWhoCode.com that lists 50 Python modules, at least some of which should prove useful to you.
]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.catswhocode.com/blog/featured/python-50-modules-for-all-needs-10"><strong><cite>50 Modules for all Needs</cite></strong></a> is an entry at CatsWhoCode.com that lists 50 Python modules, at least some of which should prove useful to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/06/16/50-python-modules-for-all-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>With Advocates Like Zed&#8230;</title>
		<link>http://www.globalnerdy.com/2008/03/03/with-advocates-like-zed/</link>
		<comments>http://www.globalnerdy.com/2008/03/03/with-advocates-like-zed/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 17:56:19 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[advocacy]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[reckless demagogues]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Zed Shaw]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/03/03/with-advocates-like-zed/</guid>
		<description><![CDATA[I can't help but wonder if, what with <a href="http://www.zedshaw.com/">Zed Shaw's</a> talk of switching to <a href="http://python.org/">Python</a> and <a href="http://www.djangoproject.com/">Django</a>, if <a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido</a> and <a href="http://en.wikipedia.org/wiki/Adrian_Holovaty">Adrian</a> view him the way <a href="http://www.barackobama.com/">Barack Obama</a> is portrayed as viewing <a href="http://en.wikipedia.org/wiki/Jesse_Jackson">Jesse Jackson</a> and <a href="http://en.wikipedia.org/wiki/Al_Sharpton">Al Sharpton</a> in <a href="http://www.nashvilleistalking.com/2008/03/02/snl-tv-funhouse-the-obama-files/"><cite>The Obama Files</cite></a>...

<p style="text-align:center;"><embed flashvars="file=http://www.rawprint.com/media/2008/0803/nbc_snl_mar01_2008_obama_cartoon.flv&#38;image=http://www.rawprint.com/media/2008/0803/nbc_snl_mar01_2008_obama_cartoon.jpg&#38;logo=http://www.rawprint.com/fvp/rsvidlogo04.png&#38;link=http://www.rawstory.com&#38;autostart=false&#38;lightcolor=0x557722&#38;backcolor=0x000000&#38;frontcolor=0xCCCCCC&#38;showicons=false" bgcolor="#FFFFFF" height="320" width="400" src="http://www.rawprint.com/fvp/flvplayer.swf" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>]]></description>
			<content:encoded><![CDATA[<p></p><p>I can&#8217;t help but wonder if, what with <a href="http://www.zedshaw.com/">Zed Shaw&#8217;s</a> talk of switching to <a href="http://python.org/">Python</a> and <a href="http://www.djangoproject.com/">Django</a>, if <a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido</a> and <a href="http://en.wikipedia.org/wiki/Adrian_Holovaty">Adrian</a> view him the way <a href="http://www.barackobama.com/">Barack Obama</a> is portrayed as viewing <a href="http://en.wikipedia.org/wiki/Jesse_Jackson">Jesse Jackson</a> and <a href="http://en.wikipedia.org/wiki/Al_Sharpton">Al Sharpton</a> in <a href="http://www.nashvilleistalking.com/2008/03/02/snl-tv-funhouse-the-obama-files/"><cite>The Obama Files</cite></a>&#8230;</p>
<p style="text-align:center;"><embed flashvars="file=http://www.rawprint.com/media/2008/0803/nbc_snl_mar01_2008_obama_cartoon.flv&amp;image=http://www.rawprint.com/media/2008/0803/nbc_snl_mar01_2008_obama_cartoon.jpg&amp;logo=http://www.rawprint.com/fvp/rsvidlogo04.png&amp;link=http://www.rawstory.com&amp;autostart=false&amp;lightcolor=0x557722&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;showicons=false" bgcolor="#FFFFFF" height="320" width="400" src="http://www.rawprint.com/fvp/flvplayer.swf" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/03/03/with-advocates-like-zed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python and Java: A Side-by-Side Comparison</title>
		<link>http://www.globalnerdy.com/2008/01/15/python-and-java-a-side-by-side-comparison/</link>
		<comments>http://www.globalnerdy.com/2008/01/15/python-and-java-a-side-by-side-comparison/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:09:21 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[comparisons]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[language wars]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/15/python-and-java-a-side-by-side-comparison/</guid>
		<description><![CDATA[This side-by-side comparison of Java and Python shows why I prefer working in languages like Python and Ruby: the &#8220;yak shaving&#8221; that Java requires drives me crazy.
]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.ferg.org/projects/python_java_side-by-side.html"><strong>This side-by-side comparison of Java and Python</strong></a> shows why I prefer working in languages like Python and Ruby: the <a href="http://en.wiktionary.org/wiki/yak_shaving">&#8220;yak shaving&#8221;</a> that Java requires drives me crazy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/15/python-and-java-a-side-by-side-comparison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Language Adoption Debate and &#8220;Three Stooges Syndrome&#8221;</title>
		<link>http://www.globalnerdy.com/2007/10/22/the-language-adoption-debate-and-three-stooges-syndrome/</link>
		<comments>http://www.globalnerdy.com/2007/10/22/the-language-adoption-debate-and-three-stooges-syndrome/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 19:40:25 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2007/10/22/the-language-adoption-debate-and-three-stooges-syndrome/</guid>
		<description><![CDATA[Tim &#8220;Ongoing&#8221; Bray&#8217;s Take
Tim Bray posted a blog entry on what drives adoption of a language in which he included some tables such as the only below:



Flawed
Founders
Polished
Successors


Procedural
FORTRAN, COBOL, PL/1
C


Object-Oriented
C++
Java


Higher-Level
Perl, TCL
Python, Ruby



This table of his should inspire a monkey knife fight on a number of blogs:



Flawed
Founders
Polished
Successors


Web-Centric
WebObjects, ColdFusion, ASP.Net, Struts, etc.,
etc., etc., PHP
Rails



Here&#8217;s an interesting one. What [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>Tim &#8220;<cite>Ongoing</cite>&#8221; Bray&#8217;s Take</h3>
<p><a href="http://www.tbray.org/ongoing/When/200x/2007/10/21/On-Languages"><strong>Tim Bray posted a blog entry on what drives adoption of a language</strong></a> in which he included some tables such as the only below:</p>
<blockquote><table>
<tr>
<th></th>
<th>Flawed<br />
Founders</th>
<th>Polished<br />
Successors</th>
</tr>
<tr>
<th>Procedural</th>
<td>FORTRAN, COBOL, PL/1</td>
<td>C</td>
</tr>
<tr>
<th>Object-Oriented</th>
<td>C++</td>
<td>Java</td>
</tr>
<tr>
<th>Higher-Level</th>
<td>Perl, TCL</td>
<td>Python, Ruby</td>
</tr>
</table>
</blockquote>
<p>This table of his should inspire a monkey knife fight on a number of blogs:</p>
<blockquote><table>
<tr>
<th></th>
<th>Flawed<br />
Founders</th>
<th>Polished<br />
Successors</th>
</tr>
<tr>
<th>Web-Centric</th>
<td>WebObjects, ColdFusion, ASP.Net, Struts, etc.,<br />
etc., etc., PHP</td>
<td>Rails</td>
</tr>
</table>
</blockquote>
<p>Here&#8217;s an interesting one. What will JavaScript&#8217;s successor be? My guess for the short-term (by that, I mean &#8220;the next half-dozen or so years&#8221;) is &#8220;the next version of JavaScript&#8221;.</p>
<blockquote><table>
<tr>
<th></th>
<th>Flawed<br />
Founders</th>
<th>Polished<br />
Successors</th>
</tr>
<tr>
<th>Mobile-Code</th>
<td>JavaScript</td>
<td>?</td>
</tr>
</table>
</blockquote>
<p>The one about concurrent programming is a little more up in the air. Although there are other languages designed with concurrent programming in mind (either from the ground up or with concurrency retrofitted onto an existing language) and there have been for a while (I used <a href="http://www.silicon-press.com/books/isbn.0-929306-00-7/index.html">Concurrent C</a> in a course back at <a href="http://queensu.ca/">Crazy Go Nuts University</a> in the early &#8217;90s), Erlang is getting a lot of the attention these days since it has both <a href="http://www.ericsson.com/technology/opensource/erlang/index.shtml">a success story at Ericsson under its belt</a> as well the clout of <a href="http://www.pragprog.com/titles/jaerlang">a Pragmatic Programmers book</a> behind it. There is a feeling among some programmers (<a href="http://www.tbray.org/ongoing/When/200x/2007/09/21/Erlang">Bray</a> <a href="http://www.tbray.org/ongoing/When/200x/2007/09/22/Erlang">included</a>) that it isn&#8217;t going to be the language to turn concurrent programming from arcane art into mainstream practice:</p>
<blockquote><table>
<tr>
<th></th>
<th>Flawed<br />
Founders</th>
<th>Polished<br />
Successors</th>
</tr>
<tr>
<th>Concurrent</th>
<td>Erlang</td>
<td>?</td>
</tr>
</table>
</blockquote>
<h3>Shelley &#8220;<cite>BurningBird</cite>&#8221; Powers&#8217; Take</h3>
<p>Shelley Powers disagreed with Tim&#8217;s assessments in her posts <a href="http://burningbird.net/technology/flaws-are-in-the-eye-of-the-beholder/"><strong><cite>Flaws are in the Eye of the Beholder</cite></strong></a>:</p>
<blockquote><p>
I find it fascinating when a person marks as &#8216;flawed&#8217; the languages that have, literally, defined not only the web but application development of all forms. Perhaps the metric shouldn&#8217;t be on syntax, form, or function, but on usability.
</p></blockquote>
<p>Here&#8217;s her own table on languages:</p>
<blockquote><table>
<tr>
<th></th>
<th>&#039;Perfect&#039;, but barely used</th>
<th>&#039;Flawed&#039;, but simple, approachable, powerful, <em>popular</em>
</th>
</tr>
<tr>
<th>Higher-Level</th>
<td>*Ruby (every time I see &#039;Ruby&#039; I mentally add, <em>Mama&#039;s precious little&#8230;)</em></p>
<p>*I&#8217;m giving Python a slide because Python has fairly widespread use today.</td>
<td>Perl</td>
</tr>
<tr>
<th>Client side code</th>
<td>(The to-be-created scripting language that will take a nice, clean, easy to use language and morph it until it satisfies the purists, while breaking faith with the millions of users just trying to do a job)</td>
<td>JavaScript</td>
</tr>
<tr>
<th>Object Oriented</th>
<td>Java (bloated beyond recognition with senseless additions and overly complex infrastructures)</td>
<td>C++ (which can kick Java&#039;s ass performance and resource wise)</td>
</tr>
<tr>
<th>Web-Centric</th>
<td>Rails (you know that thing they used for the one application?)</td>
<td>Cold Fusion, ASP and ASP.NET, PHP</td>
</tr>
</table>
</blockquote>
<p>Those of you who recall Bjarne &#8220;C++&#8221; Stroustrup&#8217;s line <a href="http://www.technologyreview.com/Infotech/17831/page3/">&#8220;There are just two kinds of languages: the ones everybody complains about and the ones nobody uses&#8221;</a> or the essay <a href="http://www.dreamsongs.com/WorseIsBetter.html"><cite>Worse is Better</cite></a> (or <a href="http://www.dreamsongs.com/WIB.html">the essay that led to it</a> or <a href="http://www.jwz.org/doc/worse-is-better.html">Jamie Zawinski&#8217;s commentary on it</a>) should be feeling <em>deja vu</em> now.</p>
<p>As for Shelley&#8217;s table, I&#8217;d probably have put &#8220;PHP&#8221; where &#8220;Perl&#8221; is right now.</p>
<h3>My Own Take</h3>
<p>I think that right now, the &#8220;scripting languages&#8221; are stuck in something akin to &#8220;Three Stooges Syndrome&#8221;. That&#8217;s the disease where Mr. Burns from <cite>The Simpsons</cite>, being so old and frail, has so many diseases trying to get at him at the same time that they&#8217;re all &#8220;stuck in the door&#8221;. The doctors illustrated the syndrome with a model, shown below:</p>
<p style="text-align:center;"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2007/10/3_stooges_syndrome.jpg' alt='“Three stooges syndrome” from “The Simpsons”: All the germs and viruses are stuck in the door because they tried to get in all at once.' width="320" height="240" /></p>
<p>And since Tim and Shelley have their tables, I thought I&#8217;d make one too:</p>
<table>
<tr>
<th>Scripting Stooge</th>
<th>What&#8217;s Driving It</th>
</tr>
<tr>
<td><strong>Perl</strong></td>
<td>Legacy: it was the original &#8220;duct tape of the internet&#8221;.</td>
</tr>
<tr>
<td><strong>PHP</strong></td>
<td>Widespread adoption, drives a lot of apps, easy to program, easy to deploy.</td>
</tr>
<tr>
<td><strong>Python</strong></td>
<td>Very readable, one of the 4 languages approved for use at Google (the others being C++, Java and JavaScript, <a href="http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html">according to Steve Yegge</a>).</td>
</tr>
<tr>
<td><strong>Ruby</strong></td>
<td>Ruby on Rails, which is a very nice framework from the web app developer&#8217;s point of view. That and maybe the fact that <a href="http://www.loudthinking.com/">DHH</a> is rather photogenic (although PHPer-turned-Pythoner <a href="http://leahculver.com/">Leah Culver</a> could give him some competition).</td>
</tr>
</table>
<p><a href="http://services.tucows.com/developers/2007/10/22/the-language-adoption-debate-and-three-stooges-syndrome/"><br />
<img src="http://globalnerdy.com/wordpress/wp-content/uploads/2007/07/cross-posted-to-the-tucows-developer-blog.jpg" alt="Cross-posted to the Tucows Developer Blog." /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2007/10/22/the-language-adoption-debate-and-three-stooges-syndrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python 3000 Alpha 1 Available Now!</title>
		<link>http://www.globalnerdy.com/2007/08/31/python-3000-alpha-1-available-now/</link>
		<comments>http://www.globalnerdy.com/2007/08/31/python-3000-alpha-1-available-now/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 04:02:37 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2007/08/31/python-3000-alpha-1-available-now/</guid>
		<description><![CDATA[
If there&#8217;s an Andre 3000 and a Python 3000,why not a Guido 3000?

It&#8217;s been a long-time topic of discussion in the Python camp: Python 3.0, also known colloquially in the Python community as &#8220;Python 3000&#8243; or &#8220;Py3k&#8221;, and today it got a little more real. The first alpha release of Python 3000 is now available [...]]]></description>
			<content:encoded><![CDATA[<p></p><div style="float:right; margin-left:10px;">
<p style="text-align:center;"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2007/08/guido_3000.jpg' alt='Guido van Rossum’s head on Andre 3000’s body' /><br /><span class="caption">If there&#8217;s an <a href="http://en.wikipedia.org/wiki/André_3000">Andre 3000</a> and a Python 3000,<br />why not a Guido 3000?</span></p>
</div>
<p>It&#8217;s been a long-time topic of discussion in the Python camp: <strong>Python 3.0</strong>, also known colloquially in the Python community as &#8220;Python 3000&#8243; or &#8220;Py3k&#8221;, and today it got a little more real. <a href="http://python.org/download/releases/3.0/"><strong>The first alpha release of Python 3000 is now available for download,</strong></a> just in time for those of you who want to test-pilot it over the Labor day weekend.</p>
<p>(If you&#8217;re waiting to get a final version before downloading, you&#8217;ve got a fair bit of time. The current best estimate for the release date of that version is August 2008.)</p>
<p>Unlike Perl 6, which is a radical reworking of the language, where every feature is subject to change, the idea behind Python 3000 was correct a specific set of design mistakes. These corrections are large enough that they will break programs written in existing versions of Python, but which provide gains that are enough to make the trade-offs worthwhile.</p>
<p>If you&#8217;re curious about Python 3000, here are some links you might want to check out:</p>
<ul>
<li><a href="http://www.artima.com/weblogs/viewpost.jsp?thread=213583">The announcement in Guido van Rossum&#8217;s blog</a></li>
<li><a href="http://docs.python.org/dev/3.0/whatsnew/3.0.html"><cite>What&#8217;s New in Python 3000</cite></a>. This is a work in progress, so many sections of this document aren&#8217;t filled in yet.</li>
<li><a href="http://video.google.com/videoplay?docid=-6459339159268485356">Guido&#8217;s Python 3000 presentation rehearsal [video, 1 hour, 7 minutes]</a>. This is a Google video of Guido giving his Python 3000 presentation for OSCON a test run in front of his co-workers at Google.</li>
<li><a href="http://en.wikipedia.org/wiki/Python_3">Python 3000&#8217;s <cite>Wikipedia</cite> entry.</a></li>
<li><a href="http://python.org/ftp/python/3.0/Python-3.0a1.tgz">Source tarball for Mac OS X and Linux users.</a> I just finished the &#8220;configure/make/make install&#8221; dance and Python 3000 is now working on my G4 PowerBook running <a href="http://www.apple.com/macosx/tiger/">Tiger</a> without a hitch.</li>
<li><a href="http://python.org/ftp/python/3.0/python-3.0a1.msi">MSI installer for Windows users.</a></li>
</ul>
<p><a href="http://services.tucows.com/developers/2007/08/31/python-3000-alpha-1-available-now/"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2007/07/cross-posted-to-the-tucows-developer-blog.jpg" alt="Cross-posted to the Tucows Developer Blog." width="500" height="69" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2007/08/31/python-3000-alpha-1-available-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
