InfoQ

Presentation

Recorded at:
Recorded at

Three Years of Real-World Ruby

Presented by Martin Fowler on Jul 12, 2009

Community
Java,
Ruby
Topics
Domain Specific Languages ,
Ruby on Rails ,
Agile Techniques ,
Performance & Scalability ,
JRuby ,
Dynamic Languages ,
Language
Tags
QCon London 2009 ,
Ruby on Rails ,
JRuby ,
Rails ,
Mingle ,
DSLs ,
Scalability ,
Performance Tuning ,
ThoughtWorks ,
QCon ,
Testing
The next QCon is in London Mar 10-12, Join us!
Summary
Martin Fowler talks about ThoughtWorks's experience with using Ruby on client projects for the past three years, and the creation of a Ruby-based product 'Mingle'.

Bio
Martin Fowler is an author, speaker, consultant and general loud-mouth on software development. He's the Chief Scientist at ThoughtWorks - an international application development company, and has written five books on software development and also writes articles regularly on http://www.martinfowler.com/ .

About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.

12 comments

Watch Thread Reply

Text article available by Martin Fowler Posted Jul 14, 2009 4:50 PM
Re: Text article available by andrew mcveigh Posted Jul 15, 2009 6:01 AM
Re: Text article available by Martin Fowler Posted Jul 15, 2009 3:21 PM
Not working by Michael Furtak Posted Jul 15, 2009 7:49 AM
Re: Not working by melih birim Posted Jul 15, 2009 9:18 AM
Re: Not working by Floyd Marinescu Posted Jul 15, 2009 5:36 PM
Nice talk ... but by Ali Motaz Posted Jul 15, 2009 1:32 PM
Re: Nice talk ... but by Martin Fowler Posted Jul 15, 2009 3:27 PM
Re: Nice talk ... but by Jim Riley Posted Jul 15, 2009 11:12 PM
"Is Ruby Slow?" by Lavir the Whiolet Posted Jul 16, 2009 5:33 AM
A few more qs. by Manoj Waikar Posted Jul 17, 2009 10:10 AM
Re: A few more qs. by Rodrigo Piovezan Posted Aug 2, 2009 6:46 PM
  1. Back to top

    Text article available

    Jul 14, 2009 4:50 PM by Martin Fowler

    If you can't stand listening to me droning - you can read the article of the talk.

  2. Back to top

    Re: Text article available

    Jul 15, 2009 6:01 AM by andrew mcveigh

    Martin,

    Has there been any sampling on whether the use of ruby is more advantageous in the creation/early stages of a project, relative to the later maintenance and upgrade phases?

    Andrew

  3. Back to top

    Not working

    Jul 15, 2009 7:49 AM by Michael Furtak

    I am unable to get the video to play on Win XP, Firefox 3.5. It works in Chrome and Safari, FWIW.

  4. Back to top

    Re: Not working

    Jul 15, 2009 9:18 AM by melih birim

    I have updated my firefox to 3.5 and video is also not working in my browser.

  5. Back to top

    Nice talk ... but

    Jul 15, 2009 1:32 PM by Ali Motaz

    First I would like to say that this was a nice talk and
    that I enjoyed it greatly!



    Martin presented his ideas clearly, and in case you never heard of him before
    he is a UML and Agility hotshot, in a good way!



    41 Ruby project by a reputable company is something any new technology can aspire

    for, definitely good PR for Ruby and Rails



    But the funny thing is, and if you think like I do, the bad things about Ruby,
    which Martin highlighted in the talk are really, really, really terrible.



    1. Ruby have a bad implementation.

    Whats news to me was that Matz according to Martin doesn't have the skill to change this!



    2. Ruby is slow.

    But what you can read through the lines is , ThoughtWorks is trapped with 41, its a little too late to turn back to something else.
    And the excuse that it's ok for a program to perform bad if it was written quickly seem hard to swallow.
    OCaml at least one choice that offer high level abstraction and good performance.



    3. He says that the bottle neck is the DB, and that they don't have the skills to fix this.

    In many ways, Martin really admitted this in his talk, to defend Ruby's slowness he suggest that the problem and bottle neck are normally elsewhere like in the DB, and then he goes to say that mingle is slow! Which just means they don't know how to write fast DB applications, which is weird!



    4. We deliver slow application to our customers! And they don't mind.

    Presumably because they are delivered fast! Well, all I can think of is, they got lucky booking customers who are not demanding!
    Personally I never met a customer who like slow application!



    I do notice that number 3 and 4 and not really about Ruby, but what I am thinking is that they used Ruby to deliver these bad things. And they are tolerating it because of Ruby. Which at least fro me creates a bad association



    Finally, all I wonna say is, after this talk, you might feel not so enthusiastic about Ruby.


    Would not it have been better if he explained how he created fast performing application, and how his customers live the speed. And how speed in doing things changes perspectives and potential.


    But he didn't, because they didn't!

  6. Back to top

    Re: Text article available

    Jul 15, 2009 3:21 PM by Martin Fowler

    I haven't done any sampling on that. I recall Mingle people saying that they certainly slowed, but were still faster.

  7. Back to top

    Re: Nice talk ... but

    Jul 15, 2009 3:27 PM by Martin Fowler

    In any application speed is a feature, but not the only feature that counts. After all I can write a really, really fast program if it doesn't have to do anything! So speed is something you trade-off versus other things.


    On most of our applications the DB is the bottle neck, so Ruby's slowness isn't important. Mingle is an exception, but in that case they feel that rapid feature delivery is worth the need for more hardware.

  8. Back to top

    Re: Not working

    Jul 15, 2009 5:36 PM by Floyd Marinescu

    This bug cropped up last week with all InfoQ videos and we are working to troubleshoot it. Some users have reported greater success in the meantime with IE (gulp). Floyd

  9. Back to top

    Re: Nice talk ... but

    Jul 15, 2009 11:12 PM by Jim Riley

    A consulting company may do one or two projects when evaluating new technology. The fact that ThoughtWorks has done 41 projects (and counting) is an indication that this technology provides value to ThoughtWorks and their clients.

    Ruby/Rails may not be the perfect fit for all projects and teams. I think the presentation provides provides good information for determining where, who and how to apply Ruby/Rails.

  10. Back to top

    "Is Ruby Slow?"

    Jul 16, 2009 5:33 AM by Lavir the Whiolet

    Is Ruby really slow? Have people tried Rubinius? Or other "performance-oriented" Ruby virtual machines?

  11. Back to top

    A few more qs.

    Jul 17, 2009 10:10 AM by Manoj Waikar

    I have a few more questions for you -

    (1) Does the increasing popularity and maturing of languages like Clojure, change anything for your company's approach towards Ruby (because Ruby is slow)?
    (2) Do you foresee TW using Lisp or Clojure or say, some of the functional languages in the near future?

  12. Back to top

    Re: A few more qs.

    Aug 2, 2009 6:46 PM by Rodrigo Piovezan

    So these seem to be the main issues identified when developing with Ruby on Rails: getting Active Directory (the built-in ORM) working with unit tests, more complex deployment mechanics, catching up with the platform's (particularly Rails) frequent updates, and, naturally, the Ruby/RoR learning curve.



    The fact that Ruby on Rails has been indicated as a more productive environment than usual choices such as JEE or .NET in three years worth of projects, despite these issues, is certainly a great thing. It is difficult to see Ruby's slowness as an issue, since even Java was once like that, and look at how influent Java is in the enterprise market nowadays.



    Regarding the learning curve, you mentioned that the teams were slow at the beginning (as expected with any new technology). Progressing through the "Improvement Ravine" had a relationship with their background on other scripting/dynamic languages and also with achieving the right attitude towards meta-programming. Perhaps I just didn't understand all the gathered data, but I could not visualize how steep this learning curve is. I think it would be really useful if you could provide some kind of feedback on this, and how it affected the teams' productivity at the early stages, this way people could have more realistic expectations on the outcome of adopting these technologies. How long until a JEE or .NET team can become productive on RoR?

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.