Blogbody Rotating Header Image

RoR: NOT a revolution

Obie is gushing again about how Ruby on Rails is a revolution. Give me a break.

There’s nothing special about Ruby on Rails. First of all, anything that depends on the MySQL ordering of columns (did anyone take a relational algebra class at ThoughtWorks?) or wowing people by converting “birth_date” to “Birth date” is seriously questionable (see the 10 minute getting started demo).

More importantly, however, is that besides the religious strong-typing vs. weak-typing that always comes up between Ruby and Java, Rails isn’t doing anything a Java web framework can’t. The key thing that RoR is doing right is the same thing that Spring is doing right: shipping the code with a bunch of useful components and code generation tools out of the box. They definitely either got lucky (which I doubt), or have a much better understanding of marketing than most open source developers.

You can expect that WebWork, RIFE, Tapestry, and others are already learning from this and will provide very rich UI components — even ones that make you Illustrator folks happy :)

Update
Ryan — you seem to have missed the point entirely. I’ve been saying that (comment about turing complete) all along:

http://www.lightbody.net/~plightbo/archives/000144.html

The point is that WebWork, Tapestry, and RIFE all have just as many users as RoR saying they don’t suck — and I can guarantee you WebWork doesn’t. What I’m pointing out is that the unique thing RoR has done is not technical at all (not even a “suck” vs. “unsuck” thing), but a major marketing victory. They identified a pain point (getting started quickly) and addressed it. That’s certainly something other frameworks haven’t done well.

I know… gasp — I’m admitting that most Java frameworks have failed at something. I’m sure the RoR fanboys are just fuming that I’m being objective and (shockingly), practical, and even admitting that RoR did something well.

Quick, the sky is falling!

(If I’m wrong, please show me where RoR’s core technology — NOT the included components or code generation on top of it — make a revolutionary leap over any of the major afformentioned frameworks)

PS: Gavin is right about my incorrect statment about static/dynamic typing. The point I am making is that on the /. threads, the only talk you see is about “I need an IDE” or “the language is the tool”, which eventually come back to typing arguments. They are religious and have nothing to do with RoR.

17 Comments on “RoR: NOT a revolution”

  1. #1 Gavri Fernandez
    on Apr 12th, 2005 at 10:36 am

    I’m pretty sure that the 10-minute rails demo is very damaging to Rails advocacy. Anyone who sees that video gets the impression that Rails is nothing more than a framework for creating CRUD applications. And it isn’t helping that the few beginner tutorials on Rails — for no reason at all except maybe to make a great first impression on those building teeny web apps — begin by showing-off the ’scaffold’ magic. (Someone delink that video from the Rails site please!)

    The demo has nothing to do with what Rails is all about. Just spend an hour looking at the Rails documentation http://api.rubyonrails.org and then make up your mind.

  2. #2 Gavri Fernandez
    on Apr 12th, 2005 at 10:38 am

    And I forgot to mention, Ruby is strongly-typed. It just isn’t statically-typed.

  3. #3 Obie
    on Apr 12th, 2005 at 10:55 am

    The revolution, in my opinion, is the influx of PHP programmers, who generally have a higher degree of creative talent and are primarily associated with web design firms, into a market that’s been dominated by more “technical” type of people. With the technical playing field leveled out, the more creative folks will have an advantage because they can produce better-looking apps, faster.

  4. #4 Ryan Tomayko
    on Apr 12th, 2005 at 11:22 am

    > Rails isn’t doing anything a Java web framework can’t.

    This is the worst argument you could possibly make in a language debate. All turing complete languages have the exact same capabilities. It’s not a matter of can or can not, it’s a matter of sucking or sucking not.

  5. #5 dgm
    on Apr 12th, 2005 at 11:23 am

    What are you talking about, mysql ordering of columns? Converting names? That’s just the default scaffold to get you started. (the result of “SELECT * from foo”, which usually comes out in a particular order. So?) You can edit those files and design it however you want! That’s a totally irrelevant argument, and you seem to have missed the whole point.

    The whole point of rails is how fast it is to develop. It require much less configuration, and much less lines of code. Don’t Repeat Yourself.

    Several J2EE developers have noticed that the entor rails application required fewer lines of code than just the config XML file for the same Java app.

    In my own experience, a complicated billing application which I expected to take several months to write has now been shrunk down to a few weeks to develop. Try it before you knock it!

  6. #6 Patrick Lightbody
    on Apr 12th, 2005 at 11:29 am

    Ryan — you seem to have missed the point entirely. I’ve been saying all along:

    http://www.lightbody.net/~plightbo/archives/000144.html

    The point is that WebWork, Tapestry, and RIFE all have just as many users as RoR saying they don’t suck — and I can guarantee you WebWork doesn’t. What I’m pointing out is that the unique thing RoR has done is not technical at all (not even a “suck” vs. “unsuck” thing), but a major marketing victory. They identified a pain point (getting started quickly) and addressed it. That’s certainly something other frameworks haven’t done well.

    I know… gasp — I’m admitting that most Java frameworks have failed at something. I’m sure the RoR fanboys are just fuming that I’m being objective and (shockingly), practical, and even admitting that RoR did something well.

    Quick, the sky is falling!

    (If I’m wrong, please show me where RoR’s core technology — NOT the included components or code generation on top of it — make a revolutionary leap over any of the major afformentioned frameworks)

  7. #7 Gavin Sinclair
    on Apr 12th, 2005 at 11:29 am

    Ah Patrick… you’re doomed never to learn the magic of Rails now, for you would never be able to live down your ridiculous statements about it. Watching a 10-minute video does not make you an expert.

    Do you really think Obie is gushing over a 10 minute video, or anyone else for that matter? Would anybody really gush over a framework that “depends on the MySQL ordering of columns”? Isn’t that an insult to everyone’s intelligence?

    There is something special about Ruby on Rails, and it doesn’t take much reading or using to understand.

  8. #8 Gavin Sinclair
    on Apr 12th, 2005 at 11:40 am

    Patrick, the core goodness of RoR is not (just) about getting started quickly. You can keep going quickly even after there’s no more code generation to be done.

    It’s the way you don’t have to bind an action to a class and method: it’s automatic.

    It’s the way you don’t have to bind a controller method to a view: it’s automatic.

    It’s the lightweight way in which you can refactor view logic into “partials” (think Tiles) and “helpers” (think taglibs): again, no need to bind any of this together; Rails does it all in the background instead of you having to do it in a config file.

    It’s the huge number of practical things it does out of the box, including client-side stuff now (Ajax), and the way they integrate well.

    There’s more to Rails’s success than a mere marketing victory. Most of the marketing comes from satisfied users, not through any preconceived means. Ah, but satisfied users must be just easily convinced fanboys, I suppose. Whatever, they (and I) are continuously impressed with how easy it is to write a webapp using Rails. I think that’s a revolution.

  9. #9 Patrick Lightbody
    on Apr 12th, 2005 at 11:42 am

    Dqm,
    I certainly understand that the 10 minute demo is to show off how quick it is to develop. But it’s a lie. If it takes 10 minutes to build crap, then it doesn’t really take 10 minutes to build a real application, does it? You can’t have it both ways — you can’t say scaffolding revolutionizes the world, but then also say I don’t need to use if I don’t want.

    You do know that MySQL is a shit database for “enterprise software” (to quote Jon Tirsen), right? You also know that column order is not guaranteed by most vendors, including Oralce, right?

    Oh, that’s right, I don’t need to use scaffolding. But wait, where’d my 10 minute demo go? Why is this straw man looking at me with this perverted smile?

  10. #10 Patrick Lightbody
    on Apr 12th, 2005 at 11:51 am

    Gavin,
    Everything you mentioned, except for “It’s the huge number of practical things it does out of the box”, is far from new or revolutionary. I think you just made my point for me.

    Amazing that even when giving the project a complement, if it isn’t in the form of “RoR saved my life”, it’s not good enough.

  11. #11 Gavin Sinclair
    on Apr 12th, 2005 at 11:56 am

    Patrick, your understanding of scaffoding is ridiculous. Think scaffolding on a building site. Do you choose whether to use it or not? No. Does using it mean it’s not a real building? No.

    If you don’t use scaffolding in Rails, fine. You won’t offend anyone. If you do use it, it just gets you started, then you gradually edit the bits that are useful and delete the bits that aren’t. You build your app around the scaffolding as if it were a building. And like a building, the finished product shows none of the scaffolding.

    This business about column order is absurd.

    The demo doesn’t intend to claim it takes 10 minutes to build a real app. But I’d rather edit a basic webapp than write one from scratch.

    Please find something useful to say about RoR.

  12. #12 Jason Carreira
    on Apr 12th, 2005 at 12:00 pm

    dgm, I’m amazed that someone is letting you build a billing application in Ruby. How’s the integration with ERP systems coming? How’s the 2PC transaction manager written in Ruby coming?

    I have no doubt Ruby and RoR is nice for building some web applications, but enterprise software? Software that handles billing? Sounds kind of risky to me…

  13. #13 Obie
    on Apr 12th, 2005 at 4:31 pm

    Jason,

    You misread that. I said “billable”, meaning I’m getting paid for it. Our main deliverable is a portal written on WebWork2 and Hibernate3, but the app getting the most excitement from the stakeholders is the Rails one.

    Obie

  14. #14 Obie
    on Apr 12th, 2005 at 4:32 pm

    Jason, nevermind my last comment. I see that you weren’t talking to me.

  15. #15 Andreas
    on Apr 12th, 2005 at 4:43 pm

    “anything that depends on the MySQL ordering of columns”

    I stopped reading at this point. Obviously you do not have the faintest idea of what you’re trying to write about.

  16. #16 MrWeb
    on Apr 12th, 2005 at 7:45 pm

    Heh, Yeah, the MySQL ordering was funny. I’ve played with it and don’t even have MySQL installed. Pretty cool stuff. I love it if for no other reason how uptight Java web framework supporters get over it! It’s quite funny. A cool app comes out, has documentation most Java Web Frameworks can only dream about. Isn’t mired in massive amounts of XML and is pretty fun to use. All of the sudden every Java Web Framework developer (and there are thousands) lose it. Makes me think there’s really something there.

    I hear folks saying Perl blows away Java and I don’t go off on irrational half informed rants. I just laugh, it’s so far from true.

  17. #17 Robby
    on Apr 13th, 2005 at 9:06 am

    ..and to think that I just spent my time reading an argument by someone who tried to finish proving his point by using the term, “enterprise.”

    Sigh.

    Enterprise is so 2001.

Leave a Comment