<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6835333761218445378.post8333897852813015088..comments</id><updated>2008-05-02T11:54:16.438-07:00</updated><title type='text'>Comments on Convince me to use Python: Ruby's Achilles heel...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://convincemetousepython.blogspot.com/feeds/8333897852813015088/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html'/><author><name>Jake</name><uri>http://www.blogger.com/profile/10185244351210612611</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-5275082335514188924</id><published>2008-05-02T11:54:00.000-07:00</published><updated>2008-05-02T11:54:00.000-07:00</updated><title type='text'>Glenn said "That's probably how about 90% of my de...</title><content type='html'>Glenn said "That's probably how about 90% of my dealings with new modules goes -- import x, help( x ), use x."&lt;BR/&gt;&lt;BR/&gt;Even better, give ipython a try.  This gives you direct access to the python docstrings, context sensitive tab completion, and much much more.&lt;BR/&gt;&lt;BR/&gt;Here is the ipython equivalent of your example (N.B. [tab] means hit the tab key):&lt;BR/&gt;&lt;BR/&gt;import x[tab]   &lt;BR/&gt;# (lists and cycles through all the modules on the path that start with x)&lt;BR/&gt;&lt;BR/&gt;x?      &lt;BR/&gt;# (prints information about x, including the file it is defined in and its docstring)&lt;BR/&gt;&lt;BR/&gt;x??&lt;BR/&gt;# (prints even more information about x, including the syntax highlighted source code)&lt;BR/&gt;&lt;BR/&gt;x.[tab]&lt;BR/&gt;# (lists and cycles through the methods &amp; attributes on x)&lt;BR/&gt;&lt;BR/&gt;x.foo?&lt;BR/&gt;&lt;BR/&gt;# (prints info on the foo method or attribute of x)&lt;BR/&gt;&lt;BR/&gt;and so on.  You can also use the same help() system as in the regular python interpreter.&lt;BR/&gt;&lt;BR/&gt;I hardly ever need to refer to the Python docs, excellent though they are, since it is usually quicker and easier to ask ipython.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5275082335514188924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5275082335514188924'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209754440000#c5275082335514188924' title=''/><author><name>Dave</name><uri>http://www.blogger.com/profile/05692608289845036146</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-2276921643920686706</id><published>2008-05-01T12:37:00.000-07:00</published><updated>2008-05-01T12:37:00.000-07:00</updated><title type='text'>FREE Python docs &amp; books. Search FSF's free books ...</title><content type='html'>FREE Python docs &amp; books. Search &lt;A HREF="http://www.gnu.org/doc/other-free-books.html" REL="nofollow"&gt;FSF's free books list&lt;/A&gt; for Python &amp; Zope, then search it for Ruby &amp; Rails. No comparison, pals.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2276921643920686706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2276921643920686706'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209670620000#c2276921643920686706' title=''/><author><name>Elizabeth Wiethoff</name><uri>http://c2.com/cgi/wiki?ElizabethWiethoff</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-3108665929067092348</id><published>2008-05-01T00:03:00.000-07:00</published><updated>2008-05-01T00:03:00.000-07:00</updated><title type='text'>Python is missing some documentation, but by-and-l...</title><content type='html'>Python is missing some documentation, but by-and-large I would say most things are well documented.&lt;BR/&gt;&lt;BR/&gt;Consider this session ( feel free to follow along ina a python session of your own ):&lt;BR/&gt;$ python&lt;BR/&gt;...&lt;BR/&gt;&gt;&gt;&gt; import md5&lt;BR/&gt;&gt;&gt;&gt; help( md5 )&lt;BR/&gt;&gt;&gt;&gt; hasher = md5.new()&lt;BR/&gt;&gt;&gt;&gt; hasher.update( 'hello' )&lt;BR/&gt;&gt;&gt;&gt; hasher.hexdigest()&lt;BR/&gt;'5d41402abc4b2a76b9719d911017c592'&lt;BR/&gt;&gt;&gt;&gt;&lt;BR/&gt;&lt;BR/&gt;That's probably how about 90% of my dealings with new modules goes -- import x, help( x ), use x.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/3108665929067092348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/3108665929067092348'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209625380000#c3108665929067092348' title=''/><author><name>Glenn</name><uri>http://www.blogger.com/profile/05111362731795886792</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-4119854210299247666</id><published>2008-04-26T02:07:00.000-07:00</published><updated>2008-04-26T02:07:00.000-07:00</updated><title type='text'>Mr Neighbourly said "Even further, there are a num...</title><content type='html'>Mr Neighbourly said "Even further, there are a number of things in Python that aren't documented, but the documentation tools skip them if there isn't any documentation. :)".&lt;BR/&gt;&lt;BR/&gt;Can you give some examples of the "number of things" in Python that are not documented?    That sounds like FUD to me.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/4119854210299247666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/4119854210299247666'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209200820000#c4119854210299247666' title=''/><author><name>Dave</name><uri>http://www.blogger.com/profile/05692608289845036146</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-5422517062223505336</id><published>2008-04-25T05:42:00.000-07:00</published><updated>2008-04-25T05:42:00.000-07:00</updated><title type='text'>That's why there is much interest and lots of acti...</title><content type='html'>That's why there is much interest and lots of activities in various efforts like Ruby Specification Wiki and RubySpec conformance test suites, etc. Also, new book "The Ruby Programming Language", co-authored by Matz, serves as a good description/specification of Ruby Language.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5422517062223505336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5422517062223505336'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209127320000#c5422517062223505336' title=''/><author><name>Vladimir Sizikov</name><uri>http://www.blogger.com/profile/11263393823709082814</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-6895095097483553309</id><published>2008-04-25T05:20:00.000-07:00</published><updated>2008-04-25T05:20:00.000-07:00</updated><title type='text'>Are you all really wasting time in this pointless ...</title><content type='html'>Are you all really wasting time in this pointless discussion? C'mon, grow up. Brian said it all. 'Nuff said.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/6895095097483553309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/6895095097483553309'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209126000000#c6895095097483553309' title=''/><author><name>AkitaOnRails</name><uri>http://www.blogger.com/profile/05539202931163964720</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-2155619365674083086</id><published>2008-04-24T17:51:00.000-07:00</published><updated>2008-04-24T17:51:00.000-07:00</updated><title type='text'>For a language that is so "easy to read" who needs...</title><content type='html'>For a language that is so "easy to read" who needs documentation?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2155619365674083086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2155619365674083086'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209084660000#c2155619365674083086' title=''/><author><name>Rehan</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-5566250207449387409</id><published>2008-04-24T17:23:00.000-07:00</published><updated>2008-04-24T17:23:00.000-07:00</updated><title type='text'>@mr. neighborly: I challenge you to point out one....</title><content type='html'>@mr. neighborly: &lt;BR/&gt;&lt;BR/&gt;I challenge you to point out one...that's right...just one...piece of Python's core or standard libraries that isn't documented. Seriously...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5566250207449387409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/5566250207449387409'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209082980000#c5566250207449387409' title=''/><author><name>Jake</name><uri>http://www.blogger.com/profile/10185244351210612611</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10049878658668167727'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-9011032982470183535</id><published>2008-04-24T13:46:00.000-07:00</published><updated>2008-04-24T13:46:00.000-07:00</updated><title type='text'>A few months ago, I printed out Python's MD5 docs ...</title><content type='html'>A few months ago, I printed out Python's MD5 docs and stuck them in the Ruby section of my 3-ring binder. Oy.&lt;BR/&gt;&lt;BR/&gt;My "favorite" piece of &lt;A HREF="http://ruby-doc.org/stdlib/" REL="nofollow"&gt;undocumented Ruby&lt;/A&gt; is &lt;A HREF="http://poignantguide.net/ruby/chapter-5.html#section6" REL="nofollow"&gt;Config::CONFIG&lt;/A&gt; (&lt;A HREF="http://mysite.verizon.net/hpassel/rubyguide/api18.html#rbconfig" REL="nofollow"&gt;rbconfig&lt;/A&gt;).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/9011032982470183535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/9011032982470183535'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1209069960000#c9011032982470183535' title=''/><author><name>Elizabeth Wiethoff</name><uri>http://mysite.verizon.net/hpassel/rubyguide/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-2879938702517700275</id><published>2008-04-23T18:11:00.000-07:00</published><updated>2008-04-23T18:11:00.000-07:00</updated><title type='text'>While I appreciate your mentioning this, and there...</title><content type='html'>While I appreciate your mentioning this, and there are a lot of areas where Ruby is poorly documented, I think picking out one of the few places where documentation is non-existent is a little unfair.  Even further, there are a number of things in Python that aren't documented, but the documentation tools skip them if there isn't any documentation. :)&lt;BR/&gt;&lt;BR/&gt;We're working on fixing this and other documentation faults.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2879938702517700275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/2879938702517700275'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1208999460000#c2879938702517700275' title=''/><author><name>Mr. Neighborly</name><uri>http://www.blogger.com/profile/02063939073935274480</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-201615883723479359</id><published>2008-04-23T15:37:00.000-07:00</published><updated>2008-04-23T15:37:00.000-07:00</updated><title type='text'>Ruby and Python share many similarities, and they ...</title><content type='html'>Ruby and Python share many similarities, and they don't stop just at the language.  Both are open source, and both arguably fall into the camp of having a BDFL (a Benevolent Dictator For Life, for the uninitiated).  Some would argue that Linux also falls into this category.&lt;BR/&gt;&lt;BR/&gt;While much of the inspiration, direction and sweat equity has been  (originally) sourced from a single person [Matz, Guido, Linus], as open source projects, they and their accompanying documentation belong to their respective communities.&lt;BR/&gt;&lt;BR/&gt;The qualitative differences you're pointing out in comparing the documentation of a python class to a ruby class are certainly valid.  The distinction I would make, however, is that this is not a problem with the Ruby &lt;I&gt;language&lt;/I&gt;, but falls on the Ruby &lt;I&gt;community&lt;/I&gt; of which we all consider ourselves a part.&lt;BR/&gt;&lt;BR/&gt;To that end, the solution is not only within reach, but it's our responsibility to carry out.  Instead of pointing blame at Ruby, let's look to ourselves and ask not what has Ruby done for me, but what can I do for Ruby?  (apologies to JFK ;) &lt;BR/&gt;&lt;BR/&gt;If you search many of the popular Ruby newsgroups you'll find this topic has received much attention lately.  I do hope that parlays into an organized effort, to which I'm happy to participate, in providing better documentation, in the public domain(!) that serves us, and our favorite language, all at once.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/201615883723479359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/201615883723479359'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1208990220000#c201615883723479359' title=''/><author><name>brian doll</name><uri>http://www.blogger.com/profile/11287564219374596261</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6835333761218445378.post-3764174111342841677</id><published>2008-04-23T15:13:00.000-07:00</published><updated>2008-04-23T15:13:00.000-07:00</updated><title type='text'>The ruby version doesn't even list real methods. M...</title><content type='html'>The ruby version doesn't even list real methods. MD5 is a class object with several useful methods, none of them documented:&lt;BR/&gt;&lt;BR/&gt;irb(main):001:0&gt; require 'digest/md5'&lt;BR/&gt;=&gt; true&lt;BR/&gt;irb(main):002:0&gt; Digest::MD5.public_methods(false)&lt;BR/&gt;=&gt; ["digest", "file", "hexdigest", "allocate", "superclass", "new"]&lt;BR/&gt;irb(main):003:0&gt; quit&lt;BR/&gt;&lt;BR/&gt;$ ri MD5.digest&lt;BR/&gt;Nothing known about MD5.digest&lt;BR/&gt;&lt;BR/&gt;$ ri MD5.hexdigest&lt;BR/&gt;Nothing known about MD5.hexdigest&lt;BR/&gt;&lt;BR/&gt;And so on...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/3764174111342841677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6835333761218445378/8333897852813015088/comments/default/3764174111342841677'/><link rel='alternate' type='text/html' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html?showComment=1208988780000#c3764174111342841677' title=''/><author><name>Pazu</name><uri>http://pazu.com.br/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://convincemetousepython.blogspot.com/2008/04/one-way-python-smacks-ruby-around.html' ref='tag:blogger.com,1999:blog-6835333761218445378.post-8333897852813015088' source='http://www.blogger.com/feeds/6835333761218445378/posts/default/8333897852813015088' type='text/html'/></entry></feed>