Earlier this year, I had the pleasure of asking my friend David some hard-hitting questions about the future of Rails in the enterprise, profiting from his success and whether a vendor will fork Rails someday. The resulting interview contains lots of good information for technologists staking their future on the Rails platform, including David's opinions on Rails adoption, service-oriented architecture and scaling Rails applications.
David was very confident and relaxed , so there are tons of entertaining and priceless comments to questions such as:
- So at what point do the commercial appeals, at what point does your capitalistic urge kick in and say: "Okay. There are 2 million people worldwide using Rails, I can do Rails Inc. I can leverage the trademark!" When does that happen?
- Let's say that you don't indulge that capitalistic kick, someone could theoretically come along and fork Rails, right?
- What are the factors that make you say that it is unlikely that someone would come along and do a better job with Rails?
- What about the typical third of the IT community who are in it for just a job, they are not really interested in technical excellence? Let's talk about that mainstream. Let's talk about what happens if they feel compelled to start adopting Rails. Let's talk a little bit about what happens when their bosses watch this interview and say "Okay, I'm going to have my guys to do a vertical Spike", and they tell all these guys "Have at it! Do some Rails!" What happens then?
- Does 37 Signals have an SOA? Describe it.
Watch the exclusive interview today!
Community comments
Great article
by Kevin Williams,
Re: Great article
by Steve Zara,
this is C we're talking about
by Mike Schwab,
Re: Great article
by Ahmet A. Akin,
not very "hard hitting"
by myke myers,
Re: not very "hard hitting"
by Steve Zara,
Great article
by Kevin Williams,
Your message is awaiting moderation. Thank you for participating in the discussion.
Many Pointy-Haired Bosses think if your development tools couldn't create the same performance numbers as Amazon or Ebay or Google or Yahoo out of the box, then those tools are a waste of time and are not allowed. Thanks for clarifying *how* and *why* this idea is silly. The "300 lines of C" example really drives home how easy it is to hit performance numbers in Rails without sacrificing developer productivity and sanity.
Re: Great article
by Steve Zara,
Your message is awaiting moderation. Thank you for participating in the discussion.
What the "300 lines of C" example shows is how you have to trade easy portability for performance with Ruby. 300 lines may sound trivial, but any additional external code may raise problems if you want to switch platforms, or, say, switch to 64-bit.
This is certain to change with ports of Ruby and Rails onto Java and .NET. JRuby on Rails allows easy use of 300 lines of Java without any loss of portability (and soon, without any loss of open-source-ness).
But for now, count me in as a cautious pointy-haired boss (well, developer).
Re: Great article
by Ahmet A. Akin,
Your message is awaiting moderation. Thank you for participating in the discussion.
i really am having a hard time to understand if you are ironic or serious on this comment. give me 200 lines of Java code any day instead of wrapped 300 line of buggy C code any day. when has putting core work into unmaintainable black boxes become "productivity"??
not very "hard hitting"
by myke myers,
Your message is awaiting moderation. Thank you for participating in the discussion.
A few things that put me off about this.
First - one of my big problems with the ruby community in general, is that there seems to be this very "join us or die a thousand firey deaths" mentality. You got your hammer from one store - i got mine from another, who cares. really? It's gotten better, but that undertone is still there I think.
Second, the arrogance that seems to go along with it. "Java developers aren't real developers, they're java developers". Does the same go for old VB Developers? What about C guys, or Perl guys? Are Rubyists the only REAL developers out there? Wait, no C is real development, because you need it where ruby fails.
Work on picking yourself up more than putting other people down. Seems like the only thing rubyists really have to say lately is "screw java!".
Next, if there's no need to concern yourself with possible performance bottlenecks in ruby - if it really is as fast and stable and can handle all this stuff you throw at it - then why the need to drop down to C in the first place?
Last, if the database is your bottleneck - perhaps the better solution is to look at the design of the database, and WHY it's a bottleneck, rather than just letting the system generate on-the-fly sql queries for you, and then impliment caching because it's slow. Maybe i'm wrong on that one, but i find it really hard to believe that all the volumes of text that have been written about how to optimize your db design and your queries are useless - and the only real smart solution is just to cache on the sql side of things.
This interview was interesting, but it was not hard hitting by any means (as the summary says). Seems like more fluff and showboating than substance to me.
I really do want to buy into the whole ruby thing, I do. If I decide to bring my personal projects back from the dead, maybe i'll play with it.
But when i hear interviews like this from the creator of rails, along side statements like "we don't care about the enterprise, we care about keeping developers happy" - it doesn't give me much to go on. YOU may not care about big business, but my CEO does. If I walk into his office and say business doesn't matter, and this makes developers happy - how long before security escorts me from the building?
Maybe i'm a pointy haired, overly cautious skeptic - but i think the Ruby community has a lot of soul searching to do in terms of where thier priorities lie, and where they're really going in the future. Until then - i guess i'm just lame for not drinking the kool-aide.
Re: not very "hard hitting"
by Steve Zara,
Your message is awaiting moderation. Thank you for participating in the discussion.
Another form of arrogance I often see in this context is frequent mention of ways to 'sneak' Ruby and Rails into companies, as if the Ruby developer is the only one who truly understands what is required. Use of different technologies should be a matter for open discussion and evaluation.
this is C we're talking about
by Mike Schwab,
Your message is awaiting moderation. Thank you for participating in the discussion.
C was designed, if I'm not mistaken, to run on absolutely any hardware that could ever be created. It is portable. So your complaint strikes me as misplaced. Yes there are probably changes that would have to be made in the examples you gave - but this is why optimization should only be done after you've chosen your deployment hardware. You could use Java as you say, but then you sacrifice the speed that you were optimizing for in the first place. Ooops!