# Zed Shaw on Ruby Pros/Cons: You Used Ruby to Write WHAT?

**URL:** <https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932>\
**Category:** Ruby\
**Created:** [March 4, 2008, 4:20pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932 "2008-03-04T16:20:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 4:20pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/1 "2008-03-04T16:20:42Z")

</div>

At [CIO.com](http://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.

> **[5 myths and realities of IT culture change](https://www.cio.com/article/191000)**
>
> To drive digital transformation, IT organizations must embrace change. Ineffective or outdated notions of what it takes can derail success.

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 8:12pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/2 "2008-03-04T20:12:42Z")

</div>

On Tue, Mar 4, 2008 at 7:20 AM, estherschindler [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> At [CIO.com](http://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](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.

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 8:49pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/3 "2008-03-04T20:49:32Z")

</div>

Christopher D. wrote:

> On Tue, Mar 4, 2008 at 7:20 AM, estherschindler [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > [http://www.cio.com/article/191000](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.

I’m a bit surprised he didn’t take the easy shots at ruby: not suitable  
for hard real time, for device drivers, for SMP, for embedding multiple  
interpreters in a process, for very low memory situations. Most IT  
managers won’t know these things unless you tell them, no matter how  
obvious they are to programmers.

Anyway, he seems to know about web and java gui, but not much about some  
of the other topics he mentions. “Large data crunching”? What about Ara  
Howard’s work at NOAA? “Image manipulation”? Ditto. He briefly appears  
to discount Event Machine without naming it or giving specifics about  
why it’s not suitable for “server protocols” (if he has a reason, I’d  
like to know it!). I’ve found ruby extremely useful (with a bit of C  
code compiled on the fly) for simulations that involve “heavy math or  
computation” and for DSLs to specify and manage those simulations.

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 9:35pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/4 "2008-03-04T21:35:54Z")

</div>

I was surprised to see his claim that Rails isn’t any good for writing  
a CMS, yet Django is. Having easily written a few CMS-like apps in  
Rails, I have NO idea what his thoughts are there. Is it the blocking  
file upload issue?

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 9:02pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/5 "2008-03-04T21:02:32Z")

</div>

On Tue, Mar 4, 2008 at 1:47 PM, Joel VanderWerf  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> for hard real time, for device drivers, for SMP, for embedding multiple  
> code compiled on the fly) for simulations that involve “heavy math or  
> computation” and for DSLs to specify and manage those simulations.

I agree he skipped over some things (both bad and good), but I think  
his general point was that Ruby in a web production environment can be  
a feisty animal (he mentioned math, but only briefly, and was clearly  
unaware of some number-crunching that people have done). But, just  
like with any language, I suppose you need good programmers to have  
good programs. The only difference that I personally see is how easy  
a particular language can allow someone to write bad code, and I think  
that’s what he was trying to get at.

Todd

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 11:54pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/6 "2008-03-04T23:54:11Z")

</div>

On Wed, 5 Mar 2008, Mark T. wrote:

> I was surprised to see his claim that Rails isn’t any good for writing  
> a CMS, yet Django is. Having easily written a few CMS-like apps in  
> Rails, I have NO idea what his thoughts are there. Is it the blocking  
> file upload issue?

The relevant paragraph is:

“The caveat on Ruby for Web programming is that Rails is better suited  
for  
building Web applications. I’ve seen many projects attempt to create a  
WebDAV server or a content management system (CMS) with Rails and fail  
miserably. While you can do a CMS in Rails, there are much more  
efficient  
technologies for the task, such as Drupal and Django. (In fact, I’d say  
if  
you’re looking at a Java Portal development effort, you should evaluate  
Drupal and Django for the task instead.)”

Zed does seem to fall into the common trap here of criticizing Ruby via  
a  
Rails weakness (or perceived Rails weakness). I find Ruby to be a  
brilliant language to use for CMS systems, and have been doing CMS work  
with Ruby (using IOWA) for many years. The attributes of Rails may or  
may  
not make CMS systems easy to write, but that’s hardly a weakness of  
Ruby.

Kirk H.

---

<div class="post-metadata">

**Author:** ![estherschindler](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/df788c/32.png) [@estherschindler](https://www.ruby-forum.com/u/estherschindler)\
**Post date:** [March 4, 2008, 9:51pm UTC](https://www.ruby-forum.com/t/zed-shaw-on-ruby-pros-cons-you-used-ruby-to-write-what/130932/7 "2008-03-04T21:51:21Z")

</div>

On 3/4/08, Mark T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I was surprised to see his claim that Rails isn’t any good for writing  
> a CMS, yet Django is. Having easily written a few CMS-like apps in  
> Rails, I have NO idea what his thoughts are there. Is it the blocking  
> file upload issue?

Same here, multiple CMS’s under my belt using Rails, no major problems.

My experience with Django, on the other hand, was a complete pain.  
Having to place models in “apps” is dumb. An inverted template system  
is even dumber.
