« About Rails and Ghettos | Main | Do you think we are stupid? »

January 24, 2008

What's This Crap About a Ruby Backlash?

Zed's rant triggered some patently false anti-Ruby memes that have now been bouncing around the programming blogsphere echo chamber for a few weeks. Disturbingly so. It's time to put a bullet to the head of the idea that Ruby is experiencing a widespread backlash, that it was just a fad, or that it is inferior to competing technologies such as Groovy. As far as I can tell, the originators of these ideas are people that betray agendas against the success of Ruby and/or Ruby on Rails. Specifically, I'm calling one of them out by name:

Daniel Spiewak (for being a liar)

His post, The End of the Ruby Fad? really set me off and was the final straw that made me write this post. As a community, I don't think we can just let the FUD and lies perpetuate unchecked. Daniel's post in question is full of wrong-headed opinions, but it also has lies in it that I believe are specific enough to be called out as willful deception:

Daniel: "Ruby posts to link sites like DZone or Reddit get voted down before they have a chance to see the light of day."

Simply browse the ruby links on programming.reddit.com or the list of over 2000 ruby-related links on DZone to disprove that lie. My contention, which I think is fairly obvious to people on this side of the Ruby/Anti-Ruby divide, is that the people echoing the Ruby backlash theme are all folks with entrenched anti-Ruby stances and agendas. There are no neutral observers chiming in on the matter.

It's the same old FUD, repackaged:

Daniel: "...while Ruby may not be suitable for an enterprise level, high-traffic web application,"

Peter Cooper of RubyInside calls him out on that one better than I could hope to do so:

Peter: "You say you don’t like the hype or the backlash, but then you come out with this sort of vague non-statement to keep the fire burning. Any language “may” or may not be suitable for any task, but you seem to be implying in the context here that Ruby is “not” suitable for developing enterprise level, high-traffic Web applications without actually going the whole hog and just saying it. In any case, this, of course, is not true. At least, it’s no more true for Ruby than it is for Python, Perl, PHP, or Scala, say."

What about the most general of facts, about the nature of Ruby itself as a programming language?

Daniel: "(Ruby is) hardly a general-purpose language, so it could never replace Java and company."

Ruby is by definition, a general-purpose language. (Wikipedia makes a contrast between domain-specific and general-purpose languages.)

You have to question the actual knowledge of someone making such blatantly wrong assertions. In other words, does Daniel know what the hell he's talking about? He answers that question himself in the comment trail:

Daniel: "It has been pointed out that my "Rails" example is quite foolish and naive. This is absolutely true."

Oh the irony! How folksy and cute to write blatant crap in your blog, enjoy the publicity and then admit that you knew it was crap to begin with. To that I say "UNACCEPTABLE!"

Even his rhetoric is faulty, like this plainly false categorization of developers:

Daniel: "Developers these days fall into two camps: those who have heard the hype and rejected what it stands for, and developers who are totally carried away by the emotion of the fad."

Maybe not technically a lie, more of an opinion, but certainly bad rhetoric. There is a huge third camp, that dwarfs the extremists on both sides, full of intelligent, pragmatic individuals that are choosing to use the tools available to us without prejudice. That includes Java, Ruby, Python, Scala, etc. There is no silver bullet, and all that jazz...

Oppression

Daniel's post led me to question, what is the motive for piling on to the heap of negativity started by Zed and perpetuated by Rick Hightower, Graeme Rocher and others? Why pick on the Ruby community? Is it simply a reaction to the hype cycle?

Daniel: "Perhaps now that the bubble has burst, we’ll finally get to see the popularity of Ruby in its proper place."

Aha! Above all, that sentiment is the common thread amongst the haters of the progressive Ruby community. Oppression! They want to keep Ruby (and by extension Rubyists) in our proper place! What is that proper place I wonder -- perhaps it is out of the mainstream, out of the limelight, out of the enterprise, out of the places where we threaten the status quo!

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/2830062/25439694

Listed below are links to weblogs that reference What's This Crap About a Ruby Backlash?:

Comments

Obie, you wrote "... Why pick on the Ruby community?..."

Possible answer: One of the basest of human emotions - fear.

Damn! My one-off, half baked opinion piece written in five minutes over lunch has triggered *way* more of a reaction than I ever expected. I suppose it's only fair. After all, I once flamed Obie so turn-abouts: fair play.

I think most of your points (specifically taking excerpts out of context and using them to back your claim of my willful deception) are pretty much bunk. :-) Most of them seem to be centered around my off-hand remarks that Ruby is unsuitable for the large-scale (so called "enterprise") application. This opinion is based solely on my experience, both in evaluating and in using various platforms precisely in this role. It's hardly FUD if I'm 100% certain of myself and can back up the opinion with anecdotal evidence.

**I'm not anti-Ruby.** That's the one point I'd like to be utterly, resoundingly clear. If you throw out everything else I say, try to remember this one fact. I realize I'm primarily identified with the Java community, but I'm certainly not a Ruby-burning fanatic. As I stated in the post, I have almost as much experience with Ruby as I have with Java, something which should be a clear indication that I'm *not* fundamentally opposed to the language. I've said it before, and I'll say it again. I use Ruby on a *daily basis* and derive a great deal of productivity from it.

It was probably more-than-slightly confusing to use invalid "Rails syntax" in the article text. At the time, I believed that the obviously illustrative context would nullify the deliberate twisting of API since no one in their right mind would assume I was demonstrating workable code. I explain further down in the comments my reasoning behind the faux pas and the logic behind my refusal to correct the sample.

Oppression?! You really are a paranoid bunch of dolts aren't you? ;-) Your very vocal and "progressive" community always seems to have a hard time with any sort of *potentially* demeaning opinions regarding their language or (more importantly) their framework. What I was saying with this statement (and in fact, the entire article) is that Ruby has a number of wonderful and useful applications. It is neither the silver bullet nor the devil incarnate. While threatening the status quo is quite commendable, replacing tried-and-true practices and techniques with unreliable and unmaintainable equivalents is not progress but industrial suicide.

"It's hardly FUD if I'm 100% certain of myself and can back up the opinion with anecdotal evidence."

Are you intending to present that evidence? If not, then this type of statement seems to backup Obie and Peter's sentiments.

@Tammer

I can present it (and considered it for the post in question), but I decided that no one would really benefit. Those who agree with the evidence are already in the moderate camp, and those who disagree would just flame me into oblivion. So perhaps it'll be a post sometime down the line, but in the current environment I don't think it would do anything except stir up trouble.

Daniel, you may claim that you aren't anti-Ruby, but your words and actions testify to the contrary.

"You really are a paranoid bunch of dolts aren't you?" - Daniel Spiewak

IMO that really sums up your stance, despite the smiley. The condescension is mind-boggling.

Mr. Spiewak -
Maybe the problem is in the first sentence of your comment here: it was a half-baked opinion written over lunch. How is anyone to know that what you were writing was 'half-baked' unless you say so? Saying so now doesn't lessen its impact.

If your intent was to say that "Ruby has a number of wonderful and useful applications. It is neither the silver bullet nor the devil incarnate," (although a boring statement you could make about any language) why didn't you just say that? Instead, it seems you saw some kids taking some kicks in the general direction of a puppy and thought you'd join in.
(How's that for playing at people's emotions?)

He's not being a paranoid dolt. I thinkA great deal of people get defensive over their language of choice. Haven't you heard the PHP crowd for the past couple years?

I really wish everyone would just shut up, actually. Unfortunately, I am as incapable of taking my advice as everyone else.

Daniel,

Since you really offer no data, examples, or even anecdotal stories to help your claim, can you please give us a little background about yourself, or anything that will lead credence to your opinion?

Do you have a PhD from MIT? That will help, though I know a few PhDs from MIT who I disagree with as well. Did you invent a competing web framework that is more "enterprisy"? Please share, maybe we can learn something. Did you work as an enterprise consultant and saw first hand the downfalls of Ruby in that environment?

I don't mean you need to have those things to be taken seriously, but when you criticize a language, a community and when you do it outside of your own blog, you should be prepared to face the critiques. This is how academic research is done also; the work gets critiqued by the community before being published. Except usually, the author 1) provides some data or example to back up their points or 2) the author is credible based on doing so in the past and finally, the author usually graciously thanks her reviewers and revises her work for the better.

Since you neglected to do so, I will help you: thank you Obie for reviewing Daniel's work and for calling out the FUD.

Oh people like this douche-hat don't listen to things like logic or experience. Their AdSense revenue is at stake here!!

Please, for the love of all that is good and holy Mr. Spewback, don't post any more. You look almost as foolish as that dude who wrote Factor.

Thanks Obie. I was wondering how long the Ruby community was going to put up with this. I was hoping DDH would do it, but I'm really glad you did. Very much appreciated.

"replacing tried-and-true practices and techniques with unreliable and unmaintainable equivalents is not progress but industrial suicide."

Nice one. It's like the tried-and-true debate of tradition vs progress. It's like when in the old days people used to say "Why do we need computers? a person can do all those things with a typewriter, a pen and a paper - it's tested and it works" - and back then that was true, there probably were companies that died because they've paid too much for machines and training that the payoff was not worth it, but can someone argue today that computers are a not the better alternative? I know that this is a bit out there, I just had to amplify the point. Progress is not for everybody, you need talanted teams to pull it off, otherwise you'll die trying. And yes, I am suggesting that ruby is "the progress". I mean if you look at even some basic feature vs feature comparation of ruby and java even a "pointy haired boss" will see that. I mean people, get real! - the problem is that at this moment there are more bugs and is not as performant, but that's all implementation, it will be delt with - if as much code was writen in ruby as is in java ... then you can guess for yourself. And performance is a rathar subjective thing - you generaly don't need all the performance, you need "enough performance" and for what ruby's used for, I don't think there is a better balance of functionality vs performace (maybe python?) - and that's another thing people don't seem to get - there is alway a tradeoff - and it IS viable to sacrafice performance to get functionality (otherwise we will be still coding in assembler).

As for "why do we react so strongly?" Well doh! that's something we do care about - it's not as if I've learned ruby to get hired, or someone demaneded it from me, I've done it because it's fun and I like it, of course I'll be emotional.

And as it stands now, it is probably harder and more risky to do things "the new way"(and that's not specific to ruby, python, lisp, or even programming in general), but that risk is not pointless, there's a reward. You DO code faster in ruby. Your code IS cleaner and easier to understand. You are more productive and you DO think a lot more "outside of the box" - and those are all facts. So if every piece of code can be done in another language (touring compatible) then why are we still fighting - why don't we make ruby as stable and fast as the best of them and all be happy? And if there are others that don't want to take the voyage and stay safe on shore - let them, they will regret it.

Well you should sort reddit results http://reddit.com/r/programming/search?q=ruby&sort=new by date.

@IvanK: "why don't we make ruby as stable and fast as the best of them and all be happy"

Yes indeed, those efforts are underway, notably with JRuby and Rubinius.

Some of the anti-rails hype I saw started by conceding that rails is an improvement on php. Then it tried to say rails is similar to php, blah blah blah.

If rails is an improvement on php, then whatever else you might think, you have to say the proper place for rails is *at least* to replace all php development -- in other words, to get really big. ok, maybe it'd be *even better* if another framework did that, but if rails did, according to the premise, that'd be good.

not that the anti-rails hype is consistent.

Obie, reading this one may believe that there is a war going on, especially looking at the last paragraph :-)

You are threatening the status quo somewhere? Come on, you guys all look no different from a bunch of mechanics who are "threatening the status quo" at a Ford dealership with your favorite kinds of wrenches.

I don't think the backlash is against Ruby per se, but the endless and tedious hype that has been spread by zealous Ruby cultists for the last few years. These people have simply worn out their welcome at places like Javalobby, where for a long time their gratuitous Java-bashing was politely tolerated.

Oh, and as an author of Ruby books, you are definitely not a disinterested observer. It's obviously in your interest that people believe that Ruby scales, or that there is significant demand for Ruby skills in the IT job market, despite the fact that both assertions are demonstrably false.

And also, you're slamming of Daniel Spiewak in such a crude fashion shows that you're starting to get desperate about the whole thing.

Umm, yeah. When you sort reddit articles by "top", it tends to show the highly rated (top) articles. What do we get when we sort by "new":

http://reddit.com/r/programming/search?q=ruby&sort=new

That's a lot of 0's in there, and it's even worse than that, since the negatives show as 0's--you have to go into the comments of the submission and hit "details". There's no doubt that Ruby is a loser on Reddit--that's just the community it has. You might want to rethink that data point.

Unfortunately, most thinking people realize Daniel is right.

Taking Daniel's words out of context really makes YOU look like the liar here, Fernandez.

The problem is not really with Ruby, which is a wonderful language for one-off, slow, little scripts.

The problem lies with the childish Rails "community", which seems to consist largely of a bunch of script kiddies churning out nonscaling swill like the 10,000th MP3 catalog, and yelling loudly about how easy it all is.

Guess it sells, books, eh Obie? But guess what: it sure as hell doesn't sell the rest of us, who are moving on to Django et al.

It isn't anti-Ruby it IS anti-Rails. Everyone seems to be tired of the hype.

Ad-hominem and rather dubious suggestions about "oppression" do not make for a good blog post. Sorry, but you just come off as being a Ruby fanatic here.

I found in Ruby a language I love to be productive with. So with all the hype more people tend to analyze the language's behaviour and writing good stuff about it.

Yeah, I just read Design Patterns in Ruby and it helps me a lot to get a stronger hold of OOP. What's wrong with writing good Books about something and make your living with it (better), while helping others?

What's wrong having all the 'children', 'nubies', ... out there in the Ruby Community?
Doesn't any other language have them? Isn't it a given to be happy if you can get your MP3/CD collection organized with something that you build yourself with a beautiful DSL for weblications like Rails? I personally love to help them when I have time to carefully read the Ruby-ML. Some of them will grow, some of them don't, what should I care.

Working with Ruby and RoR for a long time now, I know their caveats and I know how I can handle them. On the other hand I have a language that's like my favourite pen.

Cheers

WOW! This is SAD! You guys are talking about this as if its a heated debate about theology or some kind of life or death politicle discourse!

All of you get a life! Ruby is a computer language and so is Java and neither are religions. And for the record, neither Obie nor Daniel are prophets sent from heaven to teach humanity how to live a better life!

I'm sorry if this sounds aggressive but this whole thing since Zed's rant is laughable and sad at the sametime.

It makes me happy to see real debate about the merits of anything, and esp. tech. It can educate people, and in the thrashing can come ideas and motivation to improve either the tech, or change our own minds and decisions.

In any debate, inevitably, out come the personal attacks (I'll avoid the latin), the vague comments that beg the question, the misuse of someone's words, and all the other tricks of rhetoric. And when those tricks aren't there, out come the accusations of using tricks, and a moving of the debate away from issues and into defending and clarifying the obvious.

And of course, around the blogs, there is the meta debate; when we 'talk about the talk', discussing hype, discussing if something is a fad (whatever that means) - which is like talking about whether or not we talk about something. All of this to me, while inevitable and perhaps necessary, is not constructive. It's also self generating - if you write about how there is a backlash, you have created a perception of backlash, and since all a backlash is really is a meme, your statement creates the reality as it asserts it. Very cool - Fox news is great at this stuff.

I think what Obie is trying to do is point out that there is alot of rhetoric that seems to have surfaced in the wake of Zed's challenging posts, and to try and call this rhetoric what it is - pretty much meaningless. You can (and should and and have) argue the particulars, but his point is good - let's get back to facts and away fro rhetoric and FUD, and likewise, RoR folks need to be open about what is weak in RoR and needs work.

From the comments here, and in general, it seems there are alot of smart folks who get this, and are asking for or looking for facts not opinions or predictions. I gave up long ago trying to compare different tech head to head - you always have to have the context of a particular problem to make comparisons worthwhile, so I struggle to get value from most of such talk.

To me, the best way to answer the critics is with code. Rails could be faster, and more could be done to make it scale out of the box. Doesn't mean I won't use it - I know how it behaves, and I am planning accordingly with caching, clusters, and offloaded processing as appropriate. That's why we get paid to do this people - not for the one decision of what tech to use, but for the million other decisions about how to use that tech.

I think it would be great if the hype and reality met somewhere in the middle - both by people getting real about what is good and bad about rails now, and more importantly, by people using all those keystrokes and synapses to write code to make rails/django/parrot/seaside/haskell even better - none of this tech is 'done', and we all have work to do.

@AT

Amen! :-)

@Big Kahuna:
> The problem lies with the childish Rails "community", which seems to consist largely of a bunch of script kiddies churning out nonscaling swill like the 10,000th MP3 catalog, and yelling loudly about how easy it all is.

Uh, yeah, so what? You almost proved that Ruby will win, if there is any logic to your rant....

Why?

All you got to do is look at history, where we can learn nearly all of life's lessons.

Perl? Was a bunch of the same crowd, before it displaced C and shell CGI scripts, plus nph and SSI.

ASP? Was a bunch of the same crowd, before it displaced IDC.

PHP? Was a bunch of the same crowd, before it displaced Perl and Cold Fusion.

Python? Was a bunch of the same crowd, before it displaced Perl/PHP a bit.

Java? Was a bunch of the same crowd, before it displaced Perl and ASP. Interestingly, it has been a LONG time in coming, on the server side. Java is king, but it had fast early growth as an applet language, stagnated and then took over most of the server side of things.

Ruby (on Rails)? Is that crowd, and it's threatening PHP, Perl, and Java, and quite possibly .net.

However, Ruby can easily coexist with anything else. Why is it that all the anti-RoR FUD wants to have it be an all-or-nothing deal?

Once RoR gains more enterprise features (all the above had to, over time), watch out...

I was happy-go-lucky, enjoying learning RoR, until Zed's rant started this whole thing. His rant I could handle, though, because it was based on his own experience, even though I think it was just based on miscommunication and strained relationships. He also gave us Mongrel, so he actually contributed something before he spewed venom.... (So, at least I can respect him, while disagreeing with many of his comments).

Then there was this piece of spew, that tried to "prove" that Groovy was utterly wiping out Ruby and would take over the entire programming world tomorrow. Any Sophomore/Junior in college should easily be able to see through this kind of statistical nonsense: http://www.jroller.com/RickHigh/entry/thanks_zed_btw_syntax_matters

Virtually any tiny language/environment/framework that grows from "1 to 2 to 10 to 100 people", in a few weeks sees enormous (maybe above exponential) growth for quite awhile. Once something is mainstreamed, it "stagnates" while possibly maintaining an enormous growth pattern. (That's what it, at least looks like, on charts).

That was part of Java's and Perl's and now C#'s and Ruby's growing pains.

How many times have they announced Java's or Perl's or PHP's or Windows or Mac's or Linux's or Unix's demise, for that matter.

Zed's rant was reminiscent of this Linux rant by kernel developer Con Kolivas (neither will spell doom for Ruby or Linux, mind you):
http://apcmag.com/node/6735/

It's sad to see angry, very active people in the community leave, but I respect them when they leave (even though I disagree with both of them). I don't have any respect for plain old FUD, however.

This article and one below were 2 that were designed to hold people's feet to the fire and to bring back civility to all the crazy, venomous FUD:
http://www.johnmunsch.com/2008/01/if_rails_is_a_ghetto_please_le.html

I think Obie and John Munsch are bringing back civility by countering this silly FUD.

@Daniel

Now why would you "Amen" @AT, when your FUD is what's being addressed here?

It doesn't make any sense.... You're part of the FUD problem, not the solution. I read your article, too, a couple of days ago.

It needs an apology, or at least proof of your claims.

Obie is right.

A comment on y combinator
"
> As far as I can tell, the originators of these ideas are people that betray agendas against the success of Ruby and/or Ruby on Rails.

Says the person who has a vested financial interest in the opposite."

heh! iow, pot, meet kettle!

I don't get it. An "agenda" *for* Rails (not Ruby just so we are clear) is just as bad as one against.

The best thing might be not to have an "agenda" at all or at least, not accuse others of having"agendas" just because they opine that your favorite fraeework isn't all that it is made out to be.

The intrinsic merit (or lack of it) of Rails is not affected by hype or mudslinging.

And anyway the "backlash (such as it is, I don't think saying that there are parts of the Rails community that are over zealous, that there are people who have an interest in hyping Rails , or that Rails has imperfections is much of a "backlash") is more about Rails, than Ruby.

I have yet to hear someone say anythng bad about Matz for e.g.

Rails != Ruby.

With friends like this, rails needs no enemies!

"A lie, when left uncontested, becomes a truth "

This is a quote that I've heard of somewhere and I think it's something that we can see in human history - for example Hitler and his Aryan promise to the germans.

I would like to see more prominent (influential) people in the Ruby community (like Obie) to rise up and voice their opinions as a matter of personal experience with Ruby in relation to the recent heavy backlashes.

Thanks Obie for giving more balance to the equation.

JasonOng: Thanks for putting in words exactly what I was thinking.

Post a comment

If you have a TypeKey or TypePad account, please Sign In

My Company

My Book Series