From: Christopher Dicely Date: 2008-03-05T04:11:43+09:00 Subject: Re: Zed Shaw on Ruby Pros/Cons: You Used Ruby to Write WHAT? On Tue, Mar 4, 2008 at 7:20 AM, estherschindler wrote: > At CIO.com: > > You Used Ruby to Write WHAT?! > > Deciding when to use any language -- including Ruby -- depends on the > appropriateness to task and the amount of yak shaving necessary. Zed > Shaw explains when Ruby's MRI or JRuby is the best language for the > job, and when it really isn't. > > http://www.cio.com/article/191000 I'll use language a little less colorful than Zed himself might use in talking about MRI, Rails, and the Ruby Community outside of the pages of CIO, and say the article has some problems. Zed seems to think that Rails is the start and end of Ruby for the web, which is odd given his fabulous explosion and his comments about the other Ruby web frameworks in that explosion and how those other frameworks made the Rails core team squirm. Its one thing for Zed's corporate, writing-for-pay persona to differ from his writing-on-my-own-time persona in attitude (it is, I'd say, pretty essential) but its another thing for his writing-for-pay persona to be completely ignorant of basic and relevant facts that his other persona is clearly aware of. The article is also self-contradictory in several places (this seems to be a feature of this series of articles in CIO), at one point he mentions, as a plus,the fact that MRI can easily tie to code in C for portions of an application that need it, and later he says if your application needs intensive calculations, you should not use Ruby for the application but use C, C++, Fortran, or Java. Why he doesn't suggest simply factoring out the computation-intensive portion to C or Java (depending on whether the rest of the app is JRuby or MRI) and using Ruby for the rest, which would be in line with his earlier positive comments, I don't know. Its almost like each paragraph was written in isolation by a different person. Similarly, he talks about people "giving up" on writing servers in Ruby and resorting to Ruby+C as a weakness, after having described C interfacing in MRI as a strength -- and he uses this to argue that Ruby is unsuitable for use in such projects, even though part of the support for it is people choosing to use Ruby in exactlythe way he earlier mentions as one of its strengths. "Ruby's good for DSLs, which are easy to implement!", "Ruby's bad for DSLs because Ruby DSLs don't have intelligible errors!". I don't understand what the utility of the article is supposed to be. If you don't already know anything about Ruby, its not going to help a lot in making a decision about using it in any given project, because its too scattershot with its often contradictory categorical statements about what Ruby should and should not be used for. And if you know even a little about Ruby, you'll probably know more than the article gives you about any of the issues it presents. About the only thing it seems useful for is as a tool for a manager that doesn't know much about Ruby looking to justify making a decision that's really been made for some other reason. And there, the contradictions are probably useful, since you can pick the one that goes with the decision you've already made and ignore the other.