I’m the resident “JRuby guy” most everywhere I go. Coupling a lack of Ruby-loving attendees and my predilection to get into “conversations” about the relative merits of various programming environments, the title all to often fits. Guilty as charged your honor. So, tonight I was asked an interesting question:
How do you convince a Java developer to use Ruby?
My second answer:
You wait until the person is unhappy with what they have and then you be there as a resource to them when they go looking for a better solution.
Basically, the long version of “it depends”. The particular instance I was being asked about was a fairly large team (30) using Spring MVC. They all knew Java of course and one senior member of the team was trying to convince the team lead (also at the meeting) that JRuby or an equivalent would be a good way forward. This team lead was pretty skeptical, (surprisingly so given my previous interactions with him), and wanted to know what this extra layer of abstraction was buying him. I replied that it vary well may not buy him anything. I think this was an answer he definitely did not expect and I also think it was exactly the “right” answer.
I went on to elaborate on my “it depends” answer, probing to find out where their bottlenecks were. Was it hardware, delivery time, team size? The first answer was performance, “it has to run fast” he said. Some more back and forth and it seemed performance was important but not constraining in the way it would be on a single desktop or an embedded device. No, this was a web app, and he eventually conceded that three new developers is probably a lot more expensive than three more servers. I brought up the fact that they were using Spring instead of just straight Servlets. Why? That’s potentially a ton of layers of logic to go through. Clearly there was a value to the tradeoff and my point was soon made. After about 15 minutes of questions from the team lead he seemed quite satisfied and stated that he felt much better about the prospect of moving to something like JRuby now after talking to me. He even said that he would like me to come speak to his team and field their questions about JRuby.
This was not the first time this has happened to me and I hope it won’t be the last.
So, my takeaway for all Ruby advocates:
- The hard sell of Rails may have worked to get lots of attention for Rails/Ruby and for that I thank everyone who helped make Rails a success, but it won’t pull everyone across.
- After 2+ years of hype, hype, hype, a realistic explanation of what Ruby can and can’t do, what it is good and not so good for is a welcome thing to many skeptics.
- Even the doubtful can be converted if given the proper care and attention. Be passionate, be sincere and be honest and that will come across with far more weight than your expose on how higher order functions are the solution to all of programming’s ills.
- JRuby is the magic bullet that makes a lot of people even capible of conemplating a migration over to Ruby-land. It integrates with Java flawlessley and it’s the fastest Ruby available so that helps a whole lot for the peformance-minded crowd.