InfoQ

Interview

Jim Weirich Discusses Rake, the Ruby Make Tool

Interview with Jim Weirich by Werner Schuster on Apr 17, 2008

Community
Ruby
Topics
Domain Specific Languages ,
Build systems
Tags
Mocks ,
Rake
Summary
Jim Weirich, is the Chief Scientist for EdgeCase LLC and thecreator of rake, the popular make-like build tool written in Ruby. In this interview with InfoQ, Jim disccusses the birth of rake, Domain Specific Languages, and flexmock, his mocking library.

Bio
Jim Weirich is the Chief Scientist for EdgeCase LLC, and is the creator of rake, the popular make-like build tool written in Ruby. Jim is very active in the Ruby community, presenting at many conferences and contributing to open source projects such as RubyGems. Jim blogs at http://onestepback.
We are here at RubyConf 2007, we are here with Jim Weirich. Jim why don't we start out with maybe can you introduce yourself, of course you are very popular but still for some watchers who don't know you.
That's good. And you have added a lot to the Ruby community with your Rake tool. Could you thoroughly explain what Rake does?
Rake has become pretty standard in the Ruby community now.
Was it the first big use?
So it has become quite important, so important that it is actually considered for inclusion in Ruby 1.9. Can you describe what kind of process you are going through with that, if you have to do any changes for it?
Which version is Rake now at?
So is Rake 1.0 going to coincide with the inclusion in Ruby 1.9?
What can we look forward in Rake 1.0, what new features?
Any other big features in 1.0?
Rake is one of the big examples for one of the strengths for Ruby, building Domain Specific Languages. It has been quoted and used by Martin Fowler as a big example for embedded Domain Specific Languages. Domain Specific Languages hype has been going on for some years. What's your point, what's your view on that?
So basically you are thinking that the domain is something that a user or business user should see?
It's just a specific language.
This is the first occurrence of this term? PSL?
So what would be a cut of point where, you said you had to have a range?
You also provided the Builder library, first of all would you consider the Builder library to be a DSL or?
Would it be better to call it meta-programming, use the term meta-programming for that? Or is that specific in another way?
Talking about Builder, for Builder you faced some problems with using method, method missing. What was the solution to that?
So which objects, which methods still remain in the blank slate objects?
Talking about your projects, you mentioned Flexmock. What's Flexmock?
What would be a quick explanation of the mocking concept? What does Flexmock provide?
So mocking is one of the concepts that is used in Test Driven Development or maybe Behavior Driven Development, is that it?
Can you say anything about BDD, Behavior Driven Development, another acronym? What's the crucial difference?
Did you use TDD and BDD simultaneously? Do you use Test Unit and RSpec or you just use Rspec?
You used both of them at the same project?
So BDD removes the word test so people don't confuse it with functional testing?
So to wrap this up, you also published a library for the X10 system?
What is X10 just to explain?
And your library did what exactly?
And I understand that, as a good TDD person, you used that for automation?
It's very useful to annoy developers to fix their code.
Really?
show all  show all

No comments

Watch Thread Reply

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.