InfoQ

News

Interview: Dave Thomas on Ruby, Rails and Choosing the Right Tool

Posted by Sam Aaron on Dec 11, 2007 10:19 AM

Community
Ruby
Topics
Ruby on Rails ,
Web Frameworks
Tags
Ruby on Rails

Pragmatic Programmer Dave Thomas, author of the ‘pickaxe book’ Programming Ruby, and co-author of Agile Web Development with Rails and The Pragmatic Programmer, found some time to talk with InfoQ about Ruby, Rails and the importance of choosing the right tool for the job.

Watch the full interview here (22 mins)

When asked what he thought about the influence of Ruby and Rails, Dave hoped that it would encourage developers to explore and discover new options, rather than sticking to the same set of tools:

“People have seen the success of Ruby, the success of Rails and said: “Oh, it is possible to use something different.” and that’s encouraged people to go out and explore.”

When asked why people should explore other options, Dave described how in certain contexts it made business sense to use instead of one of its competitors: J2EE

“If you look at Rails, most of the consultants that I know that are experts in both Java and Rails will tell you that they get between maybe 5 and 15 times performance increase, let’s say 5. They can write their applications maybe 5 times faster, so for domains where Rails is applicable, and that’s not all domains, but in those domains where it’s applicable a shop can turn out an application with 20% of the effort, if they were to use Rails over say C# or Java. If that’s the case then really you could say that developers who stick with the Java model and C# model are actually being negligent, because they are costing their shops so much extra money”

Dave also believes that some of the more ‘enterprise’ solutions can also be very hard to learn:

“I don’t even know how a beginner J2EE developer gets started, because the stack of books you have to read just to write a simple J2EE application it’s probably 5-6 feet tall”

“It’s a lot of pain for not much payback”

Dave cited a lack of vendors as one of the advantages of lesser-used technologies such as Ruby. In fact he believes that vendors can actually get in the way of choosing the right tool, as they have an agenda for just one technology:

“I think anybody who tries to push any technology in as the solution is missing the point.”

However he emphasised that Rails wasn’t always the best solution, and that the important thing was to make sure that you choose the right tool for the job:

“Rails is a particular solution for particular set of problems and part of the trick is making sure you use it appropriately.”

Dave described how Rails is an example of a framework that focusses on one particular problem-set and doesn’t try and solve every developer’s need. He hopes that people start to realise the benefit of this approach, and start to write more similarly focussed frameworks for particular problems:

“I think what we are going to see, or at least I hope what we’re going to see, is people realizing yet again there is no one single best solution and that maybe we can look to have smaller and more focused frameworks or solutions for individual styles of problem”

Finally, when asked why Ruby made him happy, he was only too pleased to answer:

“Coding in and Ruby makes me happy because it’s one of the shortest paths between my brain and a computer. I can think of something and I can express it very succinctly and typically fairly elegantly in Ruby without all the kind of extraneous fluff that you need in most of the languages and that makes me happy.”

Watch the full interview here (22 mins)

Podcast? by Joel Neely Posted Dec 4, 2007 9:56 AM
Re: Podcast? by Victor Cosby Posted Dec 4, 2007 10:45 AM
Strong words by Michael Neale Posted Dec 9, 2007 11:56 PM
Re: Strong words by Michael Neale Posted Dec 9, 2007 11:57 PM
Re: Strong words by Michael Neale Posted Dec 9, 2007 11:58 PM
formats by Al Tenhundfeld Posted Dec 12, 2007 12:10 PM
No Silver Bullets by Geoffrey Wiseman Posted Dec 13, 2007 10:14 PM
  1. Back to top

    Podcast?

    Dec 4, 2007 9:56 AM by Joel Neely

    It would be really great if you could make interviews like this available as podcasts, for those of use whose best time to listen and think is the daily commute.

  2. Back to top

    Re: Podcast?

    Dec 4, 2007 10:45 AM by Victor Cosby

    I second Joel's request. The iPhone doesn't support Flash yet so it would be great to watch these via QuickTime.

  3. Back to top

    Strong words

    Dec 9, 2007 11:56 PM by Michael Neale

    Calling developers "negligent" for not trying the latest domain specific solution is indeed strong words from a book author/consultant. At least that was my take (admittedly I was doing other stuff while listening). On another note, why is this a video? Surely more people would "tune in" if it was an audio only podcast (not to mention bandwidth saving, potentially). In this case the video doesn't add much (although its nice to see people talk from time to time, so some videos are nice of course). Just a thought (I am sure its already in the pipeline).

  4. Back to top

    Re: Strong words

    Dec 9, 2007 11:57 PM by Michael Neale

    I should clarify its not "trying" - its "using" that he meant. (trying would of course be ideal, in fact all professional should try lots of things, lots of the time).

  5. Back to top

    Re: Strong words

    Dec 9, 2007 11:58 PM by Michael Neale

    I should clarify its not "trying" - its "using" that he meant. (trying would of course be ideal, in fact all professional should try lots of things, lots of the time).

  6. Back to top

    formats

    Dec 12, 2007 12:10 PM by Al Tenhundfeld

    On this topic of offering interviews in multiple formats, I wholeheartedly agree. Every interview should be available in the following formats: Text transcription Downloadable mp3 Streaming video (when applicable) Podcast video If these options were present, I would probably watch/listen to/read 3x more interviews and visit the site more often.

  7. Back to top

    No Silver Bullets

    Dec 13, 2007 10:14 PM by Geoffrey Wiseman

    Some people feel so strongly about Rails, it's nice to see someone suggesting that neither Rails nor the alternatives is the one and only solution: that developers should choose the technology that suits the task.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.