<?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: Ruby: disappointment of the year :(</title>
	<atom:link href="http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Mon, 31 Oct 2011 08:01:21 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Kyle</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-118</link>
		<dc:creator>Kyle</dc:creator>
		<pubDate>Sat, 22 Sep 2007 22:28:09 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-118</guid>
		<description>Stoffe, I always find it amusing when Ruby users just cannot imagine that anyone could used it for a real world product and *not* fall in love with it. I know plenty of developers, and Pythonistas who can&#039;t stand Ruby, and I&#039;m one of them. I am a Python developer who recently worked on a Rails project with a small team, and it was a miserable experience for everyone.

I just don&#039;t think that Ruby is elegant. It is an extremely large language compared to languages like Python and Lisp, with lots of inconsistent and confusing syntax. I especially don&#039;t understand the love for anonymous blocks instead of having real high order functions.

Anonymous blocks are by far the worst. If you ask me they encourage users to write disgusting code that makes now sense, and is generally much slower than it could be. Just take a look at the rails source code and you&#039;ll see what I mean. I cannot think of a single problem that anonymous blocks solve that isn&#039;t also solved by a function or a generator. The real trouble is that there are quite a few problems that are solvable with functions that are *not* with anonymous blocks. Just try the broken map method in Ruby and you&#039;ll see what I&#039;m talking about.

And on top of that and many other problems, the compiler itself is quite unsophisticated. Take this for example:

&lt;code&gt;
  def foo()
    x = 3

    def bar()
      puts &quot;in bar()&quot;
      puts &quot;x is #{x}&quot;
    end
    puts &quot;in foo()&quot;

    bar()
  end
&lt;/code&gt;

What blows my mind is that bar *DOES NOT* close on foo. WTF? In fact this code will not even compile, because x is not in bars scope. Look at this perfectly legal code to understand what is really going on:
&lt;code&gt;
  def foo()
    def bar()
      puts &quot;in bar&quot;
    end

    puts &quot;in foo&quot;
  end
  
  foo()
  bar()
&lt;/code&gt;
The output of course is:
&lt;code&gt;
  in foo
  in bar
&lt;/code&gt;

Python does not have perfect closure, but at least it has read-only lexical closure for functions (anonymous or not). Ruby has zip, and that makes patterns like currying, or function decorators impossible, which is a deal breaker for me.

And don&#039;t even get my started on namespacing. Python&#039;s modules make things like introspection so easy and clean. Just think about how much simpler activerecord would be if it *wasn&#039;t* written in Ruby.

Anyway, rant off. I could go on, but the point is not everyone who is a Python user will go running to Ruby once they see it in all its magical glory. I don&#039;t see that ever happening for me unless a lot of things change.</description>
		<content:encoded><![CDATA[<p>Stoffe, I always find it amusing when Ruby users just cannot imagine that anyone could used it for a real world product and *not* fall in love with it. I know plenty of developers, and Pythonistas who can&#8217;t stand Ruby, and I&#8217;m one of them. I am a Python developer who recently worked on a Rails project with a small team, and it was a miserable experience for everyone.</p>
<p>I just don&#8217;t think that Ruby is elegant. It is an extremely large language compared to languages like Python and Lisp, with lots of inconsistent and confusing syntax. I especially don&#8217;t understand the love for anonymous blocks instead of having real high order functions.</p>
<p>Anonymous blocks are by far the worst. If you ask me they encourage users to write disgusting code that makes now sense, and is generally much slower than it could be. Just take a look at the rails source code and you&#8217;ll see what I mean. I cannot think of a single problem that anonymous blocks solve that isn&#8217;t also solved by a function or a generator. The real trouble is that there are quite a few problems that are solvable with functions that are *not* with anonymous blocks. Just try the broken map method in Ruby and you&#8217;ll see what I&#8217;m talking about.</p>
<p>And on top of that and many other problems, the compiler itself is quite unsophisticated. Take this for example:</p>
<p><code><br />
  def foo()<br />
    x = 3</p>
<p>    def bar()<br />
      puts "in bar()"<br />
      puts "x is #{x}"<br />
    end<br />
    puts "in foo()"</p>
<p>    bar()<br />
  end<br />
</code></p>
<p>What blows my mind is that bar *DOES NOT* close on foo. WTF? In fact this code will not even compile, because x is not in bars scope. Look at this perfectly legal code to understand what is really going on:<br />
<code><br />
  def foo()<br />
    def bar()<br />
      puts "in bar"<br />
    end</p>
<p>    puts "in foo"<br />
  end</p>
<p>  foo()<br />
  bar()<br />
</code><br />
The output of course is:<br />
<code><br />
  in foo<br />
  in bar<br />
</code></p>
<p>Python does not have perfect closure, but at least it has read-only lexical closure for functions (anonymous or not). Ruby has zip, and that makes patterns like currying, or function decorators impossible, which is a deal breaker for me.</p>
<p>And don&#8217;t even get my started on namespacing. Python&#8217;s modules make things like introspection so easy and clean. Just think about how much simpler activerecord would be if it *wasn&#8217;t* written in Ruby.</p>
<p>Anyway, rant off. I could go on, but the point is not everyone who is a Python user will go running to Ruby once they see it in all its magical glory. I don&#8217;t see that ever happening for me unless a lot of things change.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nils</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-114</link>
		<dc:creator>Nils</dc:creator>
		<pubDate>Sat, 22 Sep 2007 11:46:49 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-114</guid>
		<description>Yes I was also very much disappointed by this fact. Since Ruby was a relative new langague and written by a Japanese programmer, I thought it would have UTF8 support for sure.. but this was not the case, let&#039;s hope for Ruby 2.0.</description>
		<content:encoded><![CDATA[<p>Yes I was also very much disappointed by this fact. Since Ruby was a relative new langague and written by a Japanese programmer, I thought it would have UTF8 support for sure.. but this was not the case, let&#8217;s hope for Ruby 2.0.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Hubick</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-113</link>
		<dc:creator>Chris Hubick</dc:creator>
		<pubDate>Fri, 21 Sep 2007 16:45:41 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-113</guid>
		<description>Python might have passable Unicode support, but it&#039;s scalability is crap (IMO):
http://www.python.org/doc/faq/library/#can-t-we-get-rid-of-the-global-interpreter-lock

I&#039;m sticking with Java (which would suck less with 32 bit UCS-4 char&#039;s).</description>
		<content:encoded><![CDATA[<p>Python might have passable Unicode support, but it&#8217;s scalability is crap (IMO):<br />
<a href="http://www.python.org/doc/faq/library/#can-t-we-get-rid-of-the-global-interpreter-lock" rel="nofollow">http://www.python.org/doc/faq/library/#can-t-we-get-rid-of-the-global-interpreter-lock</a></p>
<p>I&#8217;m sticking with Java (which would suck less with 32 bit UCS-4 char&#8217;s).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yourself</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-112</link>
		<dc:creator>yourself</dc:creator>
		<pubDate>Fri, 21 Sep 2007 14:13:45 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-112</guid>
		<description>That issue with utf-8 is fixed for ruby 1.9 =)</description>
		<content:encoded><![CDATA[<p>That issue with utf-8 is fixed for ruby 1.9 =)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zeno</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-111</link>
		<dc:creator>Zeno</dc:creator>
		<pubDate>Fri, 21 Sep 2007 09:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-111</guid>
		<description>Perl does not support UTF-8 in regular expressions, which is also quite annoying ...</description>
		<content:encoded><![CDATA[<p>Perl does not support UTF-8 in regular expressions, which is also quite annoying &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sergey Udaltsov</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-110</link>
		<dc:creator>Sergey Udaltsov</dc:creator>
		<pubDate>Fri, 21 Sep 2007 07:45:02 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-110</guid>
		<description>Well, lads, even if UTF-8 is supported somehow (especially with Rails - but I am not interested ATM) but UTF-16 is a much worse situation - since it breaks zero-end promise.

PS PHP is really horrible, no arguing

PPS And I am not affiliated with Python in any way;)</description>
		<content:encoded><![CDATA[<p>Well, lads, even if UTF-8 is supported somehow (especially with Rails &#8211; but I am not interested ATM) but UTF-16 is a much worse situation &#8211; since it breaks zero-end promise.</p>
<p>PS PHP is really horrible, no arguing</p>
<p>PPS And I am not affiliated with Python in any way;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aria</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-109</link>
		<dc:creator>Aria</dc:creator>
		<pubDate>Fri, 21 Sep 2007 04:32:52 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-109</guid>
		<description>Could be that patching in a UTF-8 regex engine does enough that nobody cares. It&#039;s 8-bit clean strings, so most operations work Just Fine on UTF-8.</description>
		<content:encoded><![CDATA[<p>Could be that patching in a UTF-8 regex engine does enough that nobody cares. It&#8217;s 8-bit clean strings, so most operations work Just Fine on UTF-8.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mainwhat?</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-108</link>
		<dc:creator>mainwhat?</dc:creator>
		<pubDate>Fri, 21 Sep 2007 04:18:41 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-108</guid>
		<description>You seem to have never heard of PHP, one very mainstreamish language whose design is beyond horrible</description>
		<content:encoded><![CDATA[<p>You seem to have never heard of PHP, one very mainstreamish language whose design is beyond horrible</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: diego</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-107</link>
		<dc:creator>diego</dc:creator>
		<pubDate>Fri, 21 Sep 2007 02:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-107</guid>
		<description>Ruby 2.0 aka YARV (the new VM) will have complete Unicode support, and Ruby 2.0 will be released this year.</description>
		<content:encoded><![CDATA[<p>Ruby 2.0 aka YARV (the new VM) will have complete Unicode support, and Ruby 2.0 will be released this year.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eduardo Gonzalez</title>
		<link>http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/comment-page-1/#comment-106</link>
		<dc:creator>Eduardo Gonzalez</dc:creator>
		<pubDate>Fri, 21 Sep 2007 00:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/#comment-106</guid>
		<description>I was pretty disappointed by the lack of a Unicode class as well.  The current work around now though, is to use one of the conv packages.  I use Kconv at work because in Japan you only really need shift-jis and UTF-8.  But you should check out the iconv package.  Or better yet help make kick-ass Unicode support for Ruby 1.9 and 2.0!</description>
		<content:encoded><![CDATA[<p>I was pretty disappointed by the lack of a Unicode class as well.  The current work around now though, is to use one of the conv packages.  I use Kconv at work because in Japan you only really need shift-jis and UTF-8.  But you should check out the iconv package.  Or better yet help make kick-ass Unicode support for Ruby 1.9 and 2.0!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/sudaltsov/2007/09/20/ruby-disappointment-of-the-year/feed/ ) in 1.18498 seconds, on Feb 10th, 2012 at 10:42 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 10th, 2012 at 11:42 pm UTC -->
