<?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: Python first impressions</title>
	<atom:link href="http://eriwen.com/python/first-impressions/feed/" rel="self" type="application/rss+xml" />
	<link>http://eriwen.com/python/first-impressions/</link>
	<description>Programming productively with open-source tools</description>
	<lastBuildDate>Sat, 06 Mar 2010 23:29:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tuk</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2777</link>
		<dc:creator>Tuk</dc:creator>
		<pubDate>Sat, 26 Sep 2009 23:25:12 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2777</guid>
		<description>When learning Python don&#039;t forget to check out BPython (http://www.bpython-interpreter.org/) or IPython (http://ipython.scipy.org/). They really make trying out snippets a joy.</description>
		<content:encoded><![CDATA[<p>When learning Python don&#8217;t forget to check out BPython (<a href="http://www.bpython-interpreter.org/" rel="nofollow">http://www.bpython-interpreter.org/</a>) or IPython (<a href="http://ipython.scipy.org/" rel="nofollow">http://ipython.scipy.org/</a>). They really make trying out snippets a joy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Al Sweigart</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2298</link>
		<dc:creator>Al Sweigart</dc:creator>
		<pubDate>Wed, 01 Apr 2009 19:46:20 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2298</guid>
		<description>I completely understand your frustration with not finding full code examples. The main way I learn new programming languages is by checking out other people&#039;s code (but this is usually hard to read or not well commented).

So I wrote a book aimed at young adults and nonprogrammers to teach them programming in Python. The book is Invent Your Own Computer Games with Python and is available for free under a Creative Commons license at http://pythonbook.coffeeghost.net

Instead of focusing on syntax and what not, the book has the complete source code for several small games (and teaches programming concepts from these examples). This is similar to the old game listings in Byte magazine for BASIC.

It&#039;s also useful for people who know programming and just want to see some clear, concise Python code.</description>
		<content:encoded><![CDATA[<p>I completely understand your frustration with not finding full code examples. The main way I learn new programming languages is by checking out other people&#8217;s code (but this is usually hard to read or not well commented).</p>
<p>So I wrote a book aimed at young adults and nonprogrammers to teach them programming in Python. The book is Invent Your Own Computer Games with Python and is available for free under a Creative Commons license at <a href="http://pythonbook.coffeeghost.net" rel="nofollow">http://pythonbook.coffeeghost.net</a></p>
<p>Instead of focusing on syntax and what not, the book has the complete source code for several small games (and teaches programming concepts from these examples). This is similar to the old game listings in Byte magazine for BASIC.</p>
<p>It&#8217;s also useful for people who know programming and just want to see some clear, concise Python code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Wendelin</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2297</link>
		<dc:creator>Eric Wendelin</dc:creator>
		<pubDate>Wed, 01 Apr 2009 18:46:50 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2297</guid>
		<description>OK thanks David, you obviously have great examples there :). I&#039;m learning a lot.</description>
		<content:encoded><![CDATA[<p>OK thanks David, you obviously have great examples there :). I&#8217;m learning a lot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paddy3118</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2296</link>
		<dc:creator>Paddy3118</dc:creator>
		<pubDate>Wed, 01 Apr 2009 18:29:21 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2296</guid>
		<description>Alex,
1) Python is strongly typed, but typing is not linked to variables. for example, &#039;1&#039; + 1.0 would give an error as you cannot add a string to a float.
2) Python isn&#039;t *solely* and OO language. OO sits beside procedural and functional idioms.
3) yep, it might at first look weird to indent for block structure, but people get used to it.

What is more off-putting is when indentation doesn&#039;t matcch the logical structure of your code and that is what Python guards against.
4) Yep.
5) Or neccessarily what you think it takes either. This allows duck-typing and runtime flexibility.
6) Java *needs* those tools, and often abuses you by those tools generating lots of long-winded boilerplate code that you need a good IDE to navigate ...

Hang in there. The rewards can be great!

- Paddy.</description>
		<content:encoded><![CDATA[<p>Alex,<br />
1) Python is strongly typed, but typing is not linked to variables. for example, &#8216;1&#8242; + 1.0 would give an error as you cannot add a string to a float.<br />
2) Python isn&#8217;t *solely* and OO language. OO sits beside procedural and functional idioms.<br />
3) yep, it might at first look weird to indent for block structure, but people get used to it.</p>
<p>What is more off-putting is when indentation doesn&#8217;t matcch the logical structure of your code and that is what Python guards against.<br />
4) Yep.<br />
5) Or neccessarily what you think it takes either. This allows duck-typing and runtime flexibility.<br />
6) Java *needs* those tools, and often abuses you by those tools generating lots of long-winded boilerplate code that you need a good IDE to navigate &#8230;</p>
<p>Hang in there. The rewards can be great!</p>
<p>- Paddy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ptone</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2295</link>
		<dc:creator>Ptone</dc:creator>
		<pubDate>Wed, 01 Apr 2009 16:57:57 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2295</guid>
		<description>I took the plunge to try and switch all my tasks to python a couple months and its been mostly a joy.

I think the areas that seem most inconsistent are some of the built in functions.

Given that everything is an object it seems very odd to do the following:

my_list = [1,3,1,5]
len( my_list) 
instead of my_list.length()

or do oddball things like the much maligned:

&#039; &#039;.join(my_list)

instead of my_list.join(&#039; &#039;)

There are also an increasing number of deprecated modules in the standard library that can make doing the python &quot;one right way&quot; thing hard (ie Popen, getopt, etc)

But overall - I have to say I&#039;m extremely happy with the productivity I&#039;m finding in Python.

-P</description>
		<content:encoded><![CDATA[<p>I took the plunge to try and switch all my tasks to python a couple months and its been mostly a joy.</p>
<p>I think the areas that seem most inconsistent are some of the built in functions.</p>
<p>Given that everything is an object it seems very odd to do the following:</p>
<p>my_list = [1,3,1,5]<br />
len( my_list)<br />
instead of my_list.length()</p>
<p>or do oddball things like the much maligned:</p>
<p>&#8216; &#8216;.join(my_list)</p>
<p>instead of my_list.join(&#8216; &#8216;)</p>
<p>There are also an increasing number of deprecated modules in the standard library that can make doing the python &#8220;one right way&#8221; thing hard (ie Popen, getopt, etc)</p>
<p>But overall &#8211; I have to say I&#8217;m extremely happy with the productivity I&#8217;m finding in Python.</p>
<p>-P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ptone</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2294</link>
		<dc:creator>Ptone</dc:creator>
		<pubDate>Wed, 01 Apr 2009 16:54:18 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2294</guid>
		<description>I think we can look forward to some killer NetBeans support for python in the future - until then its textmate for me...</description>
		<content:encoded><![CDATA[<p>I think we can look forward to some killer NetBeans support for python in the future &#8211; until then its textmate for me&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Goodger</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2293</link>
		<dc:creator>David Goodger</dc:creator>
		<pubDate>Wed, 01 Apr 2009 16:36:47 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2293</guid>
		<description>Not quite.

This is something you really should understand, otherwise you will make mistakes and be confused. It&#039;s easy, just a bit different from what you&#039;re used to from other languages.

Python doesn&#039;t have variables, it has names. Names are like tags on objects. When you pass a name, you&#039;re passing a reference to the object. Whether you can modify the object in place or not depends on the type of object (ints &amp; strings no; lists &amp; dicts &amp; sets yes).

Details here:
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables

Also see the references at the end.</description>
		<content:encoded><![CDATA[<p>Not quite.</p>
<p>This is something you really should understand, otherwise you will make mistakes and be confused. It&#8217;s easy, just a bit different from what you&#8217;re used to from other languages.</p>
<p>Python doesn&#8217;t have variables, it has names. Names are like tags on objects. When you pass a name, you&#8217;re passing a reference to the object. Whether you can modify the object in place or not depends on the type of object (ints &amp; strings no; lists &amp; dicts &amp; sets yes).</p>
<p>Details here:<br />
<a href="http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables" rel="nofollow">http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables</a></p>
<p>Also see the references at the end.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sgwong</title>
		<link>http://eriwen.com/python/first-impressions/#comment-2292</link>
		<dc:creator>sgwong</dc:creator>
		<pubDate>Tue, 31 Mar 2009 02:06:56 +0000</pubDate>
		<guid isPermaLink="false">http://eriwen.com/?p=621#comment-2292</guid>
		<description>&gt; 2) lots of helper functions you call passing objects to them - looks weird to me

I strongly agree for this point. I think it should use ruby design that put those built-in methods into object so everything is more OO. Though ruby still has some methods which is act like built-in methods but actually it is live inside Kernel module just that it is expose globally.

&gt; 4) all that __xxx__ == “__yyy__”, _xxx &amp; __xxx stuff, arrr!

It seems wierd at first, but in the end I found it really useful for me.</description>
		<content:encoded><![CDATA[<p>&gt; 2) lots of helper functions you call passing objects to them &#8211; looks weird to me</p>
<p>I strongly agree for this point. I think it should use ruby design that put those built-in methods into object so everything is more OO. Though ruby still has some methods which is act like built-in methods but actually it is live inside Kernel module just that it is expose globally.</p>
<p>&gt; 4) all that __xxx__ == “__yyy__”, _xxx &amp; __xxx stuff, arrr!</p>
<p>It seems wierd at first, but in the end I found it really useful for me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
