Ruby: the love is really gone
Mar. 14th, 2008 11:09 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
As a postscript to my previous complaint about Ruby, I received today a fantastic exploration of Ruby's closure and execution semantics, via
zsquirrelboy: http://innig.net/software/ruby/closures-in-ruby.rb. This covers some of the ground that I did but then goes much, much deeper. I have only covered about half of it and probably will not get any farther today. If you are a Ruby fan or any kind of a computer language nerd I strongly recommend that you take 30 or 40 minutes to read through it.
The upshot is: Ruby is even more fucked than I recognized. I'm an understanding guy, and would be willing to accept a lot of the language's foibles if they were well documented up front, but some of these conclusions are really damning. See section 3 in particular, especially if you think that "I thought I knew all there was to know about the 'return' statement" is a funny joke.
Ruby seems like a very interesting but ultimately unsuccessful experiment in functional language semantics, where some of the novel concepts just do not pan out. Blocks in particular are a failure: if they were just implemented as first-class closures it would solve a lot of problems, but that doesn't seem likely. A pity.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
The upshot is: Ruby is even more fucked than I recognized. I'm an understanding guy, and would be willing to accept a lot of the language's foibles if they were well documented up front, but some of these conclusions are really damning. See section 3 in particular, especially if you think that "I thought I knew all there was to know about the 'return' statement" is a funny joke.
Ruby seems like a very interesting but ultimately unsuccessful experiment in functional language semantics, where some of the novel concepts just do not pan out. Blocks in particular are a failure: if they were just implemented as first-class closures it would solve a lot of problems, but that doesn't seem likely. A pity.
no subject
Date: 2008-03-14 05:05 pm (UTC)Thanks for pointing that out. It really helped me to clarify the problems I have with PHP. Every now and then I come across someone who says that PHP is their preferred scripting language, or someone who thinks it's "not that bad". Now I can simply bellow "defined by implementation!" while I drop a half-brick into a sock to show the error of their ways.
no subject
Date: 2008-03-14 05:11 pm (UTC)