Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

  • Blog Navigation
Why Rails will Reign Supreme

I believe that Ruby on Rails hallmarks the next era in software development. But before I explain the scope and significance of my claim, a little background and history of software development is necessary.

The C programming language marked a new generation for software development. It was a high-level language, compared to assembly, which made software development a viable investment on an unprecedented scale at the time. Unix was developed with C and it created new opportunities for computing; new markets and potential beneficiaries of technology were born with the advent of Unix. (While there were other languages at the time that also opened new markets for computing, such as Pascal, I am using C as the “poster child” for this era.)

But application development was very expensive with C. There were many bugs, sustainable development was hard and overall the costs made it difficult to realize a return on technology investments. (Unix, because of the scale of its adoption, made the return worth the pains and costs.) Many tried to develop various applications and found it daunting and not economically viable with C.

Java brought on the next revolution. As the next generation, higher level language, Java caused a new market to explode: enterprise development. Before Java, IT development was fairly limited to few companies with very large budgets. While there have been many incredibly expensive Java projects, the number of participants in computing erupted; even small organizations with a few employees invested in IT projects.

While Java development had a lower cost profile compared to C, it still was high. This culminated in the mid to late 1990’s with the Standish Group’s Chaos Report(first published in 1995). This landmark report noted that 5/6 software projects fail. It also described a variety of other disturbing statistics. In short, many organizations were investing in software and most of those investments failed miserably.

The rise in outsourcing in the late 1990’s and early 2000 was in response to the economic environment of software depicted by the Chaos Report. I think most of the industry was throwing up their hands — “If we can’t figure out how to build software, let’s make projects cost less and make a portfolio management play.”

But outsourcing proved not to be a panacea. In a somewhat parallel track from enterprise, and in the aftermath of the Web 1.0 bubble, a new interest in consumer oriented applications took hold early this decade. PHP marked another new era in software development.

The LAMP stack (Linux, Apache, MySql, PHP) offered a new paradigm for development. Thousands of small, focused web-based applications sprang up. Two developers in a few months were accomplishing what twenty developers couldn’t achieve in a year. Pragmatism drove ideas and it was being demonstrated that small teams could be incredibly productive in short time frames. The economics of development changed once again.

But PHP has problems. First, it is limited to website development. This makes it hard to adopt for general enterprise software, as integration can’t be effectively done with PHP. Second, it has provided a great option for first version websites, but at least in my opinion, PHP does not provide for a robust language/environment for sustainable software development; this is a must for enterprise.

The breadth and volume of topics to which software is being applied is growing. This creates tremendous pressure for the economics of software to be manageable. Furthermore, the line between enterprise software and consumer-oriented web 2.0 is getting more and more blurry. I think the market needs and demands a technology option that can be used by both markets and is economically viable.

This brings us to Ruby on Rails. Ruby is an elegant and mature programming language. Object-oriented geeks tend to love it and feel empowered to create software with it. It is also a disruptive innovation (as described by Clayton Christensen) that changes the economics of software; Rails brought forth a new vision: opinionated, convention based platforms can dramatically reduce the cost of development. I think Ruby/Rails can and will replace Java as the language and platform of choice for software development in the enterprise and will similarly establish itself as the premier option for Web 2.0, cementing the bridge between both markets.

There is much work to be done on Rails though. There are scalability issues and integration patterns are immature (on average, at least). But compare Ruby/Rails to where Java was in the 1990s and I think Ruby/Rails is much further ahead in its technology and adoption lifecycle.

And what about the alternatives like Python and Django? There is some debate over this question and that can be a series of posts by itself. For the moment, I will address this with the following observation: at Pivotal we have many developers who know Ruby and Java and the same developers are several times more productive in Ruby. In this comparison, my money is more on Ruby compared to Python than Rails compared to Django; I can’t see how we can be as productive with Python as we are with Ruby.

The momentum of Rails is not be underestimated. Geoffrey Moore, in “Crossing the Chasm”, describes how markets need, elect and will support a market leader. The need for manageable software development costs, both in terms of upfront and sustained development, create tremendous pressure, that combined with the current momentum of Rails, will drive forward the adoption and development of a rich Ruby/Rails ecosystem. As Rails becomes more and more established, its position is harder and harder to derail. (Sorry, I couldn’t resist the pun.) Think about Apple’s iPod: it isn’t enough to offer a better mp3 player as the market has invested in an iPod ecosystem of speakers, docks, cases, etc. Similarly, Rail’s position only continues to be secured.

In short, as is the case with many things, economics will dictate the needs of software and will establish the supremacy of Ruby and Rails.

  • I know this post is primarily about Rails, but I was a bit disappointed to see no mention of languages like Smalltalk in your first few paragraphs.

    I’m not saying you did anything wrong, just that… well, I guess I’m just sad Smalltalk didn’t make waves like I think it could have.

    Regardless, I hope you’re right. I’ve actually turned down a lot of PHP work because I hate the language. It irritates me to use something I know is inferior.



  • Marc

    Even if Ruby > Python, at this time the number of developers of Ruby is minuscule in comparison to the users of Python. When using Django, one has all the tools and libraries of python available and that is _huge_. Moreover, Django scales well and with a relative minimum of hassle. At best Rails vs. Django is a toss-up.

  • marktucks

    I think Ruby will be the forerunner and I would love Rails to be the market leader as a Web Framework because it’s just fun creating applications using it. But I think there will be a lean towards “light-weight” frameworks like Merb and Waves, because they are cleaning up where Rails left off.

    There has been a lot of talk about Rails’ downfalls, like, as you said, it doesn’t scale very well, and these new frameworks are selling on the fact that they do it better than Rails.

    37signals said it in their “Getting Real” book ( if you’re product is competing against another, you must sell a different story. So in Rails’ case, they are selling productivity, amongst other things, so other frameworks are selling scalability – they can’t compete on the same benefits.

    However, in Rails’ defense I agree with 37signals:

    “Believe it or not, the bigger problem isn’t scaling, it’s getting to the point where you have to scale. Without the first problem you won’t have the second.”

  • Sammie

    I remember this prediction being made a few years ago, and it seems no closer to coming true today.

    People that make predictions like this rarely say *when* they will come true, only that they will. That way, they can never be demonstrated to be wrong. It just hasn’t happened *yet*, they’ll say.

    By *when* do you predict all of the above will come true? 2010? 2012? If you refuse to give some timeframe, then you have no credibility in my view.

  • Scott

    “By when do you predict all of the above will come true? 2010? 2012? If you refuse to give some timeframe, then you have no credibility in my view.”

    humm…. the weather man can’t even accurately predict tomorrow’s weather. I think that you’re missing the point. I think that it would be immature of someone to think that they had the ability to predict when something (that’s so fluid) will occur.

  • Sammie


    I’m not asking for an exact date. I just want to know roughly (to the year) when we can declare his prediction wrong, if it hasn’t come true by that time.

    RoR people often make this prediction, but never once have I seen them provide any type of timeframe for their prediction.

    I’ll make a real prediction, whose accuracy *can* in fact be measured, that Rails will *not* reign supreme any time within the next five years. Actually, I don’t think it will ever reign supreme, but that’s not a testable hypotheses.

  • Before we have a date…uh, how does one know whether a new era in software development has begun. I think this sort of stuff is only knowable in a historic sense, so it may have already happened, we just don’t know it yet. So, Sammie might just be trolling a tiny wee bit, but it’s also sort of an empty claim in the first place. And who determines what reigns supreme? I didn’t know anything did…

    In my company the switch has happened- rather than ask why are you using Rails for project X, you have to prove why you would want to use something else. It’s the default choice for web applications. I hope no one else catches on so we can continue to successfully underbid all of the other contractors.

  • Would you elaborate a little bit on why you can’t see how you can be as productive with Python as you are with Ruby?
    Personally I don’t know Ruby (I just started learning Python actually) but I’d be interested to know why you think that. Thanks.

  • Duc

    Sounds like a fanboy stating a bunch of clueless generalizations to me.

  • Tom

    I don’t think the author has any experience developing web applications on Python. I would choose a trillion times python/django over ruby/RoR. Maybe RoR works out well for Pivotal, maybe scalability/performance is not their top priority, maybe they develop in RoR because that’s what they know, what they are good at and that is very understandable.

    RoR is fun to develop Toy Applications but I wouldn’t really recommend it for real world high traffic web apps.

    If you are considering using RoR for your webapp I would recommend you doing a quick google research first.

  • John

    > PHP does not provide for a robust language/environment for
    > sustainable software development

    Some of the largest websites in the world, for example, Facebook, rely on PHP. It clearly has shortcomings, but has proven to be both scalable and sustainable for large projects.

    > at Pivotal we have many developers who know Ruby and Java
    > and the same developers are several times more productive in Ruby.
    > In this comparison, my money is more on Ruby compared to Python
    > than Rails compared to Django; I can’t see how we can be
    > as productive with Python as we are with Ruby.

    Because your developers are more productive in Ruby than they are in Java you believe Rails is more productive than Django.

    But Django has nothing to do with Java. Given the similarities between Python and Ruby, Rails and Django, one might surmise there would be comparable productivity gains. Either way, it’s hard to guess because your developers have not tried Django.

    Rails leads a new breed of web development frameworks. There are a number of other good options. But “supremacy”? Give me a break…

  • Mike

    Rails is the choice of sucky digital marketing agencies.

    Most of rails developers were mediocre PHP developers before, most of them don’t even have a formal CS education background.

    Even an HTML/CSS coder or designer can pick up RoR, make sucky code and call it a web application.

    Rails performance and scalability is terrible and it’s all because of Ruby itself.

    It’s been proven RoR is bad for business of course with the exception of the companies who do RoR development as a service. They can charge whatever they want for a piece of crap that will need to be redevelop in python once it has more than 10,000 users ;)

  • Steve

    This kind of prediction is looking more and more like “this year will be the year of Linux”. By now, it’s pretty likely RoR will never become mainstream. Here are a couple of articles that give a few reasons why:

  • robotarmymade

    Is this some sort of dogmatic “lord of the rings” “one ring to rule them all statement?”

  • Sammie


    So far, Cedric’s original prediction has held up pretty well for almost two years. And Rubyists were saying it was destined to displace Java on back in 2005.

    I guess it will never end.

  • Tom

    This post is exactly why people shouldn’t drink and blog.

  • ynw

    @Tom: you made my day

  • Youssef

    As long as ruby is not adopted by large corporate it willnever became a mainstream. Python has been adopted by google, nasa,etc….In my opinion django will win over rails.

  • Chad Woolley

    The final word on Rails vs. Django:


    Pour one out for tha homiez…

    — ex-COBOL programmer

  • Ex-RoR Fan Boy

    Why did you disabled comments in your “Why Rails will Reign Supreme, revisited” blog post??

  • Christian Sepulveda

    To Ex-RoR Fan Boy
    I don’t think comments are disabled. I see the comment you posted. If there is a problem, let me know.

  • bgsu_drew

    I would love for Ruby and Rails to take over the enterprise, but it is NOT happening anytime soon.

    And I totally missed the “why” in this article, so the title is misleading. There is a nice historical summary of C and Java.

    Just because PHP has problems and isn’t the answer for IT, doesn’t make Rails the default winner.

    And even if Ruby does make you more productive, that has very little correlation with what enterprises decide to use. The priority is always to use what they have now (to avoid change, for integration sake), and every piece of software MUST HAVE SUPPORT.

    Good luck getting an open source project adopted on the enterprise if it doesn’t have support you can pay for. I mean, what’re you supposed to do when something goes horribly wrong? Rails doesn’t have a central company providing tech support, correct?

    The post specifically mentions scalability and integration problems. These totally damn Rails from being taken seriously right now. The threading limitation is honestly scary, and I wouldn’t stake my job on vouching for Ruby because of it.

  • “Before Java, IT development was fairly limited to few companies with very large budgets. While there have been many incredibly expensive Java projects, the number of participants in computing erupted; even small organizations with a few employees invested in IT projects.”
    This doesn’t make any sense, have you ever heard of Visual Basic? ASP? It was very easy.
    Java took off in the enterprise because the “write once – run everywhere” promise, untying the enterprise’s software from a particular server platform.

  • Christian Sepulveda

    Hello Gabriel. I am quite familiar with Visual Basic, ASP and the more recent (relatively) .NET platform. While they are used commonly in enterprise, they did come after Java (ignoring really early version of VB).

    While I agree Java’s positioning was a key element, the Microsoft platforms didn’t do so well when it came to legacy integration, at least in my experience.

  • Tim Wyatt

    Real programmers can program in fortran in any language :)

    I find it amazing that you begin your ‘history’ of programming languages with C. Does your history of the world begin with Thomas Edison?

    Prior languages such as Algol, Pascal, Lisp, Fortran and the elephant in the room–Cobol–were significantly more advanced than C in every way. What Dennis Ritchie was trying to do was create a compact portable language that would be more suitable for porting the Unix operating system than it’s first implementation language, DEC MACRO 11 assembler. In reality C was a huge step backwards from a purist software engineering standpoint, but it hit a home run with it’s unique synergy of ubiquity, simplicity and efficiency. The fact that a great amount of application software is still written in C and it’s derivatives is a testament to its ‘stickability’ and also to the great insanity of the last 30 yrs of software development.

    What’s fascinating about Ruby and Python is that they are really the first widely used languages that make some headway in reversing the great divorce between procedural (Fortran) and functional (Lisp) languages that happened in the 1950’s… yes you read that right… the 1950’s.

    If Ruby in general, and Rails in particular, succeed it will be for the same kind of reasons that C did. I.e. being in the right place at the right time with the right sweet-spot of functionality. Not because it’s religious adherents see it as a messianic deliverance from PHP.

Share This