<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Toxic Elephant : Tag python, everything about python</title>
    <link>http://www.matijs.net/blog/tag/python.rss</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Don't bury it in your back yard!</description>
    <item>
      <title>Aaargh!</title>
      <description>&lt;p&gt;I&amp;#8217;m upset. I&amp;#8217;m so upset that I was originally going to call this entry &amp;#8220;Fuck you, Python&amp;#8221;. Now, I realize that&amp;#8217;s not a very nice thing to say, and actually, &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; can&amp;#8217;t really help it anyway. Except by not existing&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;


	&lt;p&gt;Why, why, why must every other new language created these days have significant indenting? You see a new language, like &lt;a href="http://cobra-language.com/"&gt;Cobra&lt;/a&gt;, you read the &lt;a href="http://cobra-language.com/docs/why/"&gt;overview of features&lt;/a&gt;, and you go, cool, great runtime performance, static &lt;em&gt;and&lt;/em&gt; dynamic typing, and contracts, too. So you browse on to the &lt;a href="http://cobra-language.com/docs/hello-world/"&gt;hello world example&lt;/a&gt;, and boom! the absence of end-of-block tokens hits you in the face like an iron fist.&lt;/p&gt;


	&lt;p&gt;Now, in Python&amp;#8217;s case you can tell from the reasoning&lt;sup&gt;&lt;a href="#fn2"&gt;2&lt;/a&gt;&lt;/sup&gt; and the implementation that somebody actually thought this through, but Cobra has the following rationale for using this method of block structuring:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Cobra uses indentation to denote code structure since adept programmers do this anyway in languages that don&amp;#8217;t even require it (C#, Java, C++, etc.)&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Wow. I&amp;#8217;m going to make a language that uses the comma-space token to separate function arguments, since adept programmers put a space after the comma in languages that don&amp;#8217;t even require it.&lt;/p&gt;


	&lt;p&gt;Look, if you use indenting for block structure because you like Python, just say so already.&lt;/p&gt;


	&lt;p&gt;Oh wait, there&amp;#8217;s more:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;In Cobra, one &lt;span class="caps"&gt;INDENT&lt;/span&gt; is accomplished by one &lt;span class="caps"&gt;TAB&lt;/span&gt; or four &lt;span class="caps"&gt;SPACES&lt;/span&gt;.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Huh? Because adept programmers indent four characters anyway even in languages that don&amp;#8217;t require it? Because adept programmers use one tab per four spaces anyway even in editors that don&amp;#8217;t require it?&lt;/p&gt;


	&lt;p&gt;Sheesh.&lt;/p&gt;


	&lt;p&gt;I feel much calmer now.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; See how reasonable I am. I&amp;#8217;m not &lt;em&gt;actually&lt;/em&gt; calling for the non-existance of Python.&lt;/p&gt;


	&lt;p id="fn2"&gt;&lt;sup&gt;2&lt;/sup&gt; I don&amp;#8217;t agree with that reasoning either, but at least it&amp;#8217;s, you know, reasonable.&lt;/p&gt;</description>
      <pubDate>Thu, 14 Feb 2008 21:35:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:d782b7d8-5a2c-47dd-b764-6814fa48d6d6</guid>
      <author>blog@matijs.net (matijs)</author>
      <comments>http://www.matijs.net/blog/2008/02/14/aaargh#comments</comments>
      <category>software</category>
      <category>python</category>
      <category>cobra</category>
      <category>indent</category>
      <category>madness</category>
      <trackback:ping>http://www.matijs.net/blog/trackbacks?article_id=aaargh&amp;day=14&amp;month=02&amp;year=2008</trackback:ping>
      <link>http://www.matijs.net/blog/2008/02/14/aaargh</link>
    </item>
    <item>
      <title>Skipping Python for Ruby</title>
      <description>&lt;p&gt;&lt;a href="http://withoutane.com/rants/2007/01/embrace-the-heresy"&gt;Without an e writes&lt;/a&gt;:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Well, ruby just isn&amp;#8217;t that much better than python. If I&amp;#8217;m going to
  relearn everything, why would I bother with ruby? Why not just jump
  straight to lisp?&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I can really appreciate this argument, since it resonates with my reasons
for not learning Python: I knew Perl, and was doing most of my programming
in it, making nicely structured, readable, object-oriented programs. To me,
Python didn&amp;#8217;t seem like such a big step forward: It&amp;#8217;s like a Perl with
enforced readability.&lt;/p&gt;


	&lt;p&gt;And then came Ruby.&lt;/p&gt;


	&lt;p&gt;My introduction to Ruby was not through Rails, but through reading the
online version of the Pickaxe Book. After reading the first chapter, I was
sold. Here was a language that truly embraced object-orientation, and gave
access to all kinds of interesting abstractions that I had only vaguely
heard of (such as coroutines). There also was a pleasant lack of
boilerplate.&lt;/p&gt;


	&lt;p&gt;So to me, Ruby is that much better than Perl, whereas Python is not. I
wouldn&amp;#8217;t know if I agree that Ruby is not that much better than Python, but
at least I can understand the argument. Ruby is certainly no Lisp, although &lt;a href="http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp"&gt;it comes close&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;So what&amp;#8217;s next? Lisp&amp;#8217;s features certainly look appealing, giving basically
the pinnacle of power of abstraction, in exchange for slightly unappealing
syntax. I believe the syntax can be overcome, so my next language to learn
may well be a Lisp. Which Lisp is still an open question. On the other
hand, there are interesting languages like Erlang, ML and the like.&lt;/p&gt;


	&lt;p&gt;[Incidentally, Without an e is the creator of
&lt;a href="http://scarletlambda.org/"&gt;Scarlet Lambda&lt;/a&gt;, which
is roughly a web framework written in, or at least used with, a functional
style of programming in Python, with a Lisp-like syntax. Wow.]&lt;/p&gt;</description>
      <pubDate>Thu, 18 Jan 2007 18:59:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b1e959c7-9a2b-48f9-923a-984f09a47bde</guid>
      <author>blog@matijs.net (matijs)</author>
      <comments>http://www.matijs.net/blog/2007/01/18/skipping-python-for-ruby#comments</comments>
      <category>software</category>
      <category>ruby</category>
      <category>lisp</category>
      <category>programming</category>
      <category>python</category>
      <trackback:ping>http://www.matijs.net/blog/trackbacks?article_id=skipping-python-for-ruby&amp;day=18&amp;month=01&amp;year=2007</trackback:ping>
      <link>http://www.matijs.net/blog/2007/01/18/skipping-python-for-ruby</link>
    </item>
  </channel>
</rss>
