InfoQ

News

InfoQ Interview: Rich Kilmer on the Power of Ruby

Posted by Obie Fernandez on Jun 25, 2007 04:15 PM

Community
Ruby
Topics
Announcements,
Semantic Web,
Stories & Case Studies
Tags
OWL,
Rails,
Agents,
RDF,
RubyConf

Rich Kilmer is one of the Ruby world's great conversationalists and storytellers. I was lucky enough to get Rich on video at last RubyConf, and we captured a great conversation about his many success stories using Ruby. Among other things, Rich tells us about using Ruby at DARPA, the research arm of the USA's military. Also exciting to hear was how Rich has leveraged a variety of cutting-edge software and techniques such as Flash, DSLs, OWL and semantic web technologies in conjunction with Ruby.

This interview was chock-full of great highlights, of which I've selected a couple to highlight:

On using Ruby to control a system with 300 Java-based agent processes:

Chad Fowler and I over basically 2 weeks, took the Java Debug Wire Protocol specification [...] turned it into a DSL in Ruby, and used that DSL to generate the packets for sending and receiving data. So we used the DSL in Ruby as a generator to generate Ruby code, as the whole protocol and then I used that at Darpa. They were trying to say “we could freeze the agent society from within the agent society will send messages, and it took about 7-8 minutes for all the messages to propagate and everything to freeze and then go quiet. I had a Ruby process that was running all 300 VM’s were underneath it, and I could freeze it in about a half of second. All 300 of them! And you actually could watch the CPU use because we had a monitor and the CPU use has dropped to zero. And it freaked them out. And what was great was you could turn it back on, and all the agents came back on. But time had been lost. And it was like alien abduction lost time, ten minutes went away, “what happened to us?” It was a bizarre thing because they were agents and they were planning on things and all of sudden 10 minutes just went away. But it was interesting to show how Ruby could actually be used as this kind of harnesses to wrap around things like systems.

On using Ruby as "enterprise glue that doesn't set"

That’s exactly right. If you think of it as a vehicle, how many gaskets you have inside that vehicle. Because you don’t want the things rubbing against each other. But right now, because people are so against learning new languages, which is really sad, but because they are against learning new languages or getting new languages into a development environment, they want everything to be in Java, everything to be in C sharp, everything to be in whatever language they are building in, instead of saying: “let’s use different languages for different pieces of this”, which makes sense.

Watch InfoQ's exclusive interview of Rich Kilmer today.

No comments

Reply

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.