<story><title>What Pythonistas Think of Ruby</title><url>http://blog.peepcode.com/tutorials/2010/what-pythonistas-think-of-ruby</url></story><parent_chain><item><author>pavelludiq</author><text>I am one of those people who accepted the lisp religion of &quot;syntax is evil&quot;. I have a descent knowledge of python, and I&apos;ve read a few ruby tutorials.&lt;p&gt;Neither python nor ruby are lisp. Python is not cool because of generators, list comprehensions, decorators or any other feature. Ruby is not cool because of blocks or monkey patching(im suspicions of anything called MONKEY patching). Ruby and python are cool because of really cool libraries and the way people use these languages, not because they have especially well designed syntax.&lt;p&gt;Instead of arguing about how cool your crappy syntax is, argue about which has the better libraries, which implementation is better, which is used for cooler projects. Non of these languages can top lisp when it comes to expressiveness and flexibility.</text></item></parent_chain><comment><author>wvenable</author><text>Syntax is human.  Syntax is ergonomics.  A programming language is the bridge between man and machine.  Lisp, I would argue, is far more about the machine than the man and that is the simple reason why it&apos;s not more popular.&lt;p&gt;Python was cool before the libraries; that&apos;s why those libraries got written in the first place.   Lisp has been around forever and is still lacking in libraries and other support.</text></comment>
<story><title>What Pythonistas Think of Ruby</title><url>http://blog.peepcode.com/tutorials/2010/what-pythonistas-think-of-ruby</url></story><parent_chain><item><author>pavelludiq</author><text>I am one of those people who accepted the lisp religion of &quot;syntax is evil&quot;. I have a descent knowledge of python, and I&apos;ve read a few ruby tutorials.&lt;p&gt;Neither python nor ruby are lisp. Python is not cool because of generators, list comprehensions, decorators or any other feature. Ruby is not cool because of blocks or monkey patching(im suspicions of anything called MONKEY patching). Ruby and python are cool because of really cool libraries and the way people use these languages, not because they have especially well designed syntax.&lt;p&gt;Instead of arguing about how cool your crappy syntax is, argue about which has the better libraries, which implementation is better, which is used for cooler projects. Non of these languages can top lisp when it comes to expressiveness and flexibility.</text></item></parent_chain><comment><author>showell</author><text>I wholeheartedly agree that all languages should be judged on the quality of their libraries and implementation, as well as the success of the projects implemented on top of them.  Ruby and Python have a pretty good track record there.&lt;p&gt;One of the themes of Gary&apos;s talk was that Ruby is more expressive/flexible than Python, and lisp was thrown into the discussion as sort of a &quot;gold standard&quot; of expressiveness/flexibility, without necessarily passing any judgment on overall merits of the three languages.&lt;p&gt;To the extent that Ruby strives for more flexibility, it is probably way more influenced by Perl than lisp.&lt;p&gt;As somebody who has used both Ruby and Python fairly extensively, I think Ruby is undeniably more expressive than Python at times, but also more arcane at others.  Some of the differences probably come from irreconcilable tradeoffs, where you cannot have your cake and eat it too, but other tradeoffs are probably less necessary, which is why people continue to discuss it.  In the case of Ruby, it&apos;s a pretty young language, so there are probably opportunities to make it more appealing to a Python mindset without losing its great flexibility, although I do not have specific proposals.&lt;p&gt;The conference Gary spoke at was a Python conference, so most people were more interested in ways that Python could learn from Ruby, without sacrificing Pythonicness. Gary seemed to reach the conclusion that the number one feature he envied in Ruby was blocks.  Speaking for myself, I wish Python just had some kind of anonymous function syntax that was more rich than lambdas, even if it were not exactly semantically similar to Ruby blocks.</text></comment>