Ruby on Rails Radioactive Fallout

Rails has been getting a lot of flack lately, instead of the usual hype. Zed Shaw, author of Mongrel, recently blew his top off against the Ruby on Rails community leaders and said that Rails is a ghetto. Zed is getting a lot of attention from this explosive rant but this is not the first time a prominent developer/blogger has spoken out against the Rails framework and it’s leadership. Before Zed went AWOL on the Rails community, Derek Sivers of CD Baby switched back to PHP after working with Rails for two years without releasing a product. Perhaps the first notable negative article regarding Rails’ performance was a five question interview with Twitter developer Alex Payne. Since then there has been many more potty mouthed articles against Rails and its infallible dear leader, better known by his initials DHH, such as Imploding Rails, Jesus DHH, and the Uncle Ben Principle, 10 Areas Where Rails Fails, Ruby, Rails and RSpec burned a day off my lifespan, and How to ruin a Rails project.

So why all the Rails bashing? Most Rubyist and Railist will brush off and dismiss such comments as coming from Java playa hatin’ developers, but this is not the case, these articles are written from the perspective of fellow Ruby on Rails hackers, developers, and contributers. The experience of these Ruby on Rails developers remind me of the testimonials of people that escaped from a Peoples Temple cult; they been to the other side and it is not as green as it was portrayed, especially if you do not adhere without question to the opinionated papal bull-shit of the core Rails church leaders. I think some of the comments that Rails nay sayers are trying to address is that the Rails community is itself falling into the trap of eating it own dogma. But I am not a Rails heretic, so instead of paraphrasing, let me quote some of the most interesting remarks from the aforementioned articles.

Any discussion about Rails with ultimately lead to it’s performance.

Running on Rails has forced us to deal with scaling issues – issues that any growing site eventually contends with – far sooner than I think we would on another framework.
Five Question Inverview

None of these scaling approaches are as fun and easy as developing for Rails. All the convenience methods and syntactical sugar that makes Rails such a pleasure for coders ends up being absolutely punishing, performance-wise.
Five Question Inverview

Consider that Rails is the Love Child of Web 2.0 and Disillusioned Web 1.0 Developers, whole shops and corporate departments are adopting Rails as a way to push their applications into production more rapidly – what happens when they try to scale these apps and get “Twitter’d”?
Imploding Rails

The main Rails application that DHH created required restarting ~400 times/day. That’s a production application that can’t stay up for more than 4 minutes on average.
Rails is a ghetto

The greatest thing about Ruby on Rails is neither Ruby nor Rails, the best aspect of Rails is that it questioned the ‘best practices’ (or worst nightmares) of the current state of web development with its philosophy of Convention over Configuration and Don’t Repeat Yourself principle. Ruby and Rails is not the next best thing, it is just the missing link to the next best programming language and framework, or at least this is the logic of some PHP developers…

Is there anything Rails can do, that PHP CAN’T do? The answer is no.
7 reasons I switched back to PHP

Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines. … But the main reason that any programmer learning any new language thinks the new language is SO much better than the old one is because he’s a better programmer now!
7 reasons I switched back to PHP

Zed’s great rant opus against the Rails elite provided insight from an insider’s point of view, although he complains as he was an outsider. Zed did not mince words and especially goes nuclear against ThoughtWorks and Dave Thomas.

This is exactly what makes Rails a ghetto. A bunch of half-trained former PHP morons who never bother to sit down and really learn the computer science they were too good to study in college.
Rails is a ghetto

They [Rails community] were all a bunch of little ghetto fabulous princesses trying to make it in this tiny little Rails world and not enough brains between them all to make it happen.
Rails is a ghetto

When you combine stupid businesses with stupid people using a stupid framework based on a big fat fucking lie on a shitty platform you get the perfect storm of dumbfuck where a man like me can’t find work.
Rails is a ghetto

Sorry guys, but having a 1:4 code:test ratio is not focusing on code quality. It’s focusing on test quality.
Rails is a ghetto

He [Dave Thomas] basically had full access to the code and the people who wrote Rails and a direct line to DHH and still couldn’t write a decent book on writing a Rails application.
Rails is a ghetto

Technorati Tags: , , , , , , , , ,

Enjoy. Share. Be Happy.
  • Twitter
  • Facebook
  • StumbleUpon
  • del.icio.us
  • Tumblr
  • Google Bookmarks
  • FriendFeed
  • Yahoo! Buzz
  • Reddit
  • Digg
  • HackerNews
  • Suggest to Techmeme via Twitter
  • LinkedIn
  • Ping.fm
  • Identi.ca
  • Mixx
  • Furl

Related posts:

  1. Top 13 Ruby on Rails Presentations
  2. Java, Ruby, and even Python Sucks
  3. Rad Ruby On Rails
  4. The Rails Mythbuster
  5. Ruby On Rails Controller Path

This entry was posted in Programming, Rant, Ruby, TechKnow. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

14 Comments

  1. Posted January 4, 2008 at 10:36 am | Permalink

    Hi,

    I’ve been following these stories pretty closely, being someone who has spent the better part of last year getting to learn how to work with Ruby and Rails. I think these stories are grabbing major attention because, like you said, they’re coming from people who have been an integral part of the Rails community, so they carry more weight than anyone else’s opinion.

    But, I wrote a small post about Zed’s rant yesterday, and my opinion about it (and the rest of the stories mentioned in this post) is that these are opinions based on some people. Rails isn’t just Zed, Derek or Twitter. It goes beyond that. So while having these stories made public are certainly eye-opening, I don’t think this will hurt Ruby or Rails as much as people apparently make it out to be.

    In any case, this is a great post that summarizes all the growin pains Rails is experiencing. I truly hope that these stories help the Rails world rather than hurt it.

  2. Mark Murphy
    Posted January 4, 2008 at 10:38 am | Permalink

    You may wish to clarify the “restarting ~400 times/day” quote. Zed Shaw posted an update with information from DHH on this situation. The ~400 restarts were across some 60 processes, with each process hitting a memory ceiling several times a day. While that’s not exactly pretty either, the underlying problem was later repaired, and the original situation wasn’t as bleak as the original quote would suggest.

  3. Posted January 4, 2008 at 10:43 am | Permalink

    Ok, I will try not be apologetic. Yes, DHH can look bad sometimes. Yes, Ruby is slow – and this is not news. Yes, every development community has bad people. This is important: people like DHH or Zed are not Exclusive of the Rails community.

    Now, you have to have your facts straight here. Every article you mentioned had follow ups. You just cherry picked what you wanted without further investigation (meaning: Googling for 5 more minutes).

    The Twitter episode was resolved. It gave birth to solutions as the Magic Multi-Connections from Dr. Nic Williams. Other similar solutions emerged after that. For proper deployment in Rails for very large apps (I doubt you will ever have to deal with Twitter-like sizes) go to the excellent engineers of Engine Yard or Rails Machine.

    The Derek episode was obviously his own fault. Read the comments. Thing about this for a second: have you ever seen cdbaby.com? It is the usual web app 101. You can do it properly in whatever web framework you like. But in no way it takes 2 years for you to realize something is wrong. People had done much more complicated things as shopfy.com in a fraction of this time. So the bottom line is not that Rails generally sucks as you imply, but that Derek is a lousy manager. That’s all. I said that in his article’s comments.

    The Zed episode is very recent. The 400 restarts a day (spread in 60 processes actually) happened in the early days of Rails. Go figure: I have production apps and so does everybody else. Do you think that such a flop would go unnoticed for how long?

    Now, trying to picture the Rails community from the eyes of Zed Shaw – that obviously ranted more than he should and exaggerated a lot – is the definition of being ‘naive’. His rants go mostly to Dave Thomas. If they have problems, it’s their problem, not ours to judge. This affects nothing the Rails tech.

    So, do your homework before publishing. I know, I know, it’s your blog, you’re free to say whatever you please. But it also means that you can hear what you don’t want.

    Cheers.

  4. Posted January 4, 2008 at 10:49 am | Permalink

    Sorry, I forgot to mention. Just as a clarification: no Ruby on Rails is not the greatest thing since the sliced bread. If people try to push you this, I am sorry.

    I for one love Ruby and Rails, they solve my problems, they are nice to work with. The performance is not stellar but far from unbearable. There is a lot of personal taste involved and that’s why I won’t evangelize it as ‘perfect’ as a lot of people from other technologies do.

    I love other frameworks like Seaside, Django, Symfony as well. They are very good and Rails is on par with them. None of them is perfect. The Symfony PHP framework is particularly interesting where his author explicitly inspires himself from features present in both Django and Rails. And that’s the way to go: the development community doesn’t have to behave like Highlanders.

    The CTP ASP.NET MVC framework also borrowed a lot of things from frameworks like Rails. Even the naming of folders and classes look similar. This is another good example of the development community growing. That’s what good developers do: acknowledge other people’s achievements. Good developers don’t waste time trying to make others look bad. This is what amateurs do.

    Human beings are not perfect. Communities are full of humans. Conflicts will happen. You can’t help it. And we do mistakes. Let’s just make sure we don’t do the same mistakes all the time.

  5. jugurta
    Posted January 4, 2008 at 12:39 pm | Permalink

    Rails is the first pratical demonstration of the power of meta-programming outside of labs world.
    Experienced web coders are subjugated by rails magic which is in fact meta-programming magic with ruby.
    No serious developer can hate rails (and ruby) when looking into the code:it’s simply beautiful, but as soon as you try to go on production and a bit off the “rails” (real life applications are not cookbooks) you hit a wall, poor performance, no Unicode built-in ? green thread ? oh no it won’t work on legacy schema because of name conventions…
    May be Rails is just a nice demo of what ruby can do ?

  6. dave
    Posted January 4, 2008 at 1:09 pm | Permalink

    This is the beginning of the end for Rails. You cannot ignore the truth for much longer

  7. Brent
    Posted January 4, 2008 at 1:20 pm | Permalink

    As a Java developer who’s done a handful of Rails side-projects and is contemplating making the leap into full-time Rails development, I’m definitely starting to wonder whether or not that’s a good idea. I’m still at a point where I extremely enjoy Rails, but if this is a sign of things to come then I’m not sure what I should do…

  8. Posted January 4, 2008 at 1:27 pm | Permalink

    Of course nothing is ever perfect, and you can’t make everyone happy. But this post definitely misleading. There are many examples, but I’ll just point out one: Derek Sivers of CD Baby was *not* the negative slam on Rails that you imply that it is.

    I you read the Derek’s post you will understand that his switching back to PHP had more to do going with his own strengths. In fact at the very end of his posts he writes:

    “Ok. All that being said, I’m looking forward to using Rails some day when I start a brand new project from scratch, with Rails in mind from the beginning.”

  9. Posted January 4, 2008 at 3:51 pm | Permalink

    @Akita – Thanks for your detailed comments. You maybe right, this was a bit on the sensationalist side and I may not be a better reporter than the average Fox News reporter but there is nothing here to retract. I’ve given credit to all sources, and provided links for developers to make up their own minds and follow up with those articles. You are right, this is one side of one story, but I feel it needs some light to shed on it. Zed him self talks about having a free market of ideas and this article noted some of the historical growing pains that some people have experience with Rails. Rails still kicks ass in my book, I feel much like you do. I don’t know about you, but I just thought that Zed article was funny as hell and I hope you got some of that humor and didn’t feel personally threaten or attacked. This sort of internal criticism, self-reflection if you will, only makes for a better framework and community.

    @Dave – I doubt that this is the end of Rails… Even though the Twitter developer talks about the growing pains of using Rails, this has not stopped Twitter’s tremendous growth.

    One other note that I wish I include but was not immediately appropriate was that I wish that Google just give Zed a freaking cash award or something. Google goes around giving money away to open source contributions and I can’t find a nicer guy than Zed to nominate for some kind of Google Open Source Award or something. That is just a thought since I don’t work at Google.

  10. Shelly
    Posted January 4, 2008 at 4:01 pm | Permalink

    I think it ultimately comes down to, do you believe performance is greater than ease of use? And if so, then you should be using assembly or C because you will get max performance there.

    Anyone who thinks your going to have an easy ride when your site targets all users on the internet and gets popular, is not thinking straight. It’s hard regardless of the web framework you choose. It’s just easier to blame the framework than admit your lack of planning. I don’t understand why they do not just simply come out and say we are having growing pains. Enough said, easy answer, no need to spread blame.

    If you prefer ease of use, then it makes sense to choose a language you enjoy working with. Not necessarily Ruby or Rails. Then over time improve the performance of the language to an acceptable level within the boundaries of what you are trying to accomplish. When you become an expert in any language you will always find problems and issues you disagree with. If it’s open source, stop complaining and help fix it. Don’t wait for someone to approve on your idea. Just do it and put it out there. More do less talk. But they also have a right to say, we don’t like your idea, go away. No one can claim they are perfect and their way is the only way unless it’s your project and your leading it.

    Even with Zed’s rant, I still thank him for his support. But his expectation that the community is somehow at fault for his life problems is way out of place. He seems very angry at his life choices and I have no doubt he will explode against his next community of choice after he gets too involved and doesn’t get his way. But that’s ok, you just have to be tolerant of people like that. The exist in all communities.

    His rant in no way affects my decision to keep using ruby and rails. There are other interesting ways out there to boost performance regardless of the web framework, and you should be thinking about them no matter which web framework your using, even .NET and Java stuff… Squid? ESI? Memcached? Vertical Scaling, Horizontal Partitioning? These are problems you will have to deal with no matter what route you go if your wildly successful.

    Regarding the CD Baby issue, wow I think that is way overblown. I don’t recall ever being giving the real scoop on that as to what the obstacles actually were. Another easy way to just blame the framework when you decide you just preferred working with php :) How does it take a man 2 years of development to decide it’s not working out………… Needs to rethink his development process itself, not his language or web framework.

  11. Posted January 4, 2008 at 8:33 pm | Permalink

    I was talking with a friend the other day about that post of mine (the “Imploding Rails” one) and wishing, as with all “challenging” posts, that I’d given it another day to sit – I think I spent too much time on the “F-You” stuff.

    I didn’t mean to “bash” anything – that’s the funny thing. In fact I mentioned from the get-go that I love Rails. In fact I’ll go as far as to say that I think I’ve exposed more .NET developers to Rails than anyone else (blog posts, webcast tutorials, etc).

    It was discouraging to see the negativity – but it wasn’t all that bad really. I deleted a few comments that got out of control. What stuck with me, however, is how unwilling people were to question the leadership (and instead call me names). Isn’t that the whole “Rails Thing” anyway (being rebellious)?

    It’s sort of Lord of the Flies-y in some ways, but I think it will even out as people are beginning to flex the Open Source aspect of it all. It should be interesting to see what happens.

    Rails “changed the game” and I think, for those using/working on it regularly, it would be good to always maintain your critical eye and professional discipline.

  12. Posted January 10, 2008 at 10:50 pm | Permalink

    Here are some more Rails debate regarding deployment and setup.

    How Ruby on Rails Could Be Much Better
    No True “mod_ruby” Is Damaging Ruby’s Viability On The Web
    The deal with shared hosts

  13. Posted June 3, 2008 at 11:44 pm | Permalink

    I run a web firm in SLC, Utah. I must say I was a very strong Rails advocate at first – but made a committment to watch the technology closely. I’m not a major techie guy – but I pay great attention to the bottom line.

    We started in php4 and quickly switched over to RoR. It made sense from a practical and financial standpoint to build web apps in half the time. But when server problems started to occur that only the “rails developer” could fix – I started paying close attention to the language direction we would go. The server resource issues seemed bearable as long as everyone was aware. When my non-programming employees who were so used to maintaining websites in php had to keep jerking the rails programmer around to make small tweaks or update static content – I knew something was wrong. So the up front savings and profit was lost quickly when I realized the long-term headaches and draw backs. Another interesting note was that some of the Rails programmers and contractors with the exception of a small few – seemed to be more advanced at first, but lacked in experience and high level security. We had more bugs and errors that were “hidden” by some of these guys then it was worth. After about 10 Rails projects (of which several became nightmares) I switched the company back to object oriented php. We’re all php5 now and loving life again.

    Not trying to scare you rails folk – but take a close look. I’m glad I’m not alone. For what it’s worth.

  14. Harry
    Posted July 19, 2010 at 10:36 am | Permalink

    ha…it’s now 2010 and NOBODY actually gives a damn about Ruby on Rails anymore. Good Riddance to hype.

One Trackback

  1. By The Zeitgeist » Ruby on Rails == Tulip Mania? on January 4, 2008 at 10:28 pm

    [...] there’s have been a whole lots of blow ups in the Rails community of late… The blog Juixe gives a good rundown on a set if explosions rocking the core of the Rails community. An even more [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*