Topic: Ruby in the Enterprise

This conversation started here:

TonyDevlin wrote:

[[WARNING:: This post may be a little long]]

I recently had a discussion with our Operations Department (which is really a bunch of Oracle programmers), in which they were wanting to get more involved in creating the enterprise (internal) web applications.  So they asked me what is the best enterprise (web able) language (Java or Ruby).   You can imagine my thrill to hear someone phrase a question like that and I almost immediately shouted "Ruby and Rails", but I didn't.  I paused for a moment and then said let me think about that and send you a reply.   See at that moment three things hit me;
#1. I could not with a clear conscience scream Ruby without further knowledge of exactly WHAT they wanted to do, I mean there is a correct tool for every job, right? 
#2. a developer (especially in reference to language) is generally very biased, it's hard not to be.
#3, Not everyone thinks the same as I do or have the ability to learn languages as easily.

So with that in mind, this is the reply I sent to them (snipped and trimmed)
The idea of which is better, Java or Ruby is a moot point and nearly impossible to prove conclusively, in either direction. As I stated in our phone conversation, a developer, by nature, is very opinionated. A developer is going to choose the option that makes him more productive and accomplishes the task at hand the best, in his opinion.

So far in my opinion, Ruby accomplishes any task thrown at me and it increases my productivity level greatly. Therefore it is my language choice.

There are other reasons why I chose Ruby, such as;
Ruby is an elegant language, meaning it is easy to read and understand what the developer was trying to accomplish
The syntax of the Ruby language stays close to the given algorithm I'm trying to express, without a lot of linguistic overhead
Ruby just requires less typing, that to me is a tremendous value in application development, especially in rapid development

These are the questions you need to ask yourself

Can X handle what I want to do?
Is X a strongly supported language?
Is X a viable language in an Enterprise setting?
Can I learn X?
Can I find X developers, if I ever needed too?
Can I find X work, if I ever needed too?
Does X work in my environment with my current applications?

If all of those end up being Yes for multiple languages (which it will) then your only real question is;
Which, in your opinion, will increase your productivity and accomplish your task at hand the best?
Which do you feel more comfortable learning?

I believe that is about as unbiased and honest as any developer can be.   What do you all think about the response I sent them?

ryenski wrote:

That's a good response, although I don't think there is anything wrong with being biased, unless it causes you to be blinded by obvious objections to your bias. By the sound of your email, you have your eyes open. Where people get into trouble is when they're unwilling to admit that their chosen platform has any weakness at all, believing that it is always the best solution for any problem you have. That is just flat wrong. Ruby is great, but there may be times when it's not the best choice.

Having said that, it sounds like they were looking for a recommendation from you. If you stand behind Ruby, you shouldn't be afraid to make a strong case for it. I would recommend the book "Enterprise Integration with Ruby" to help you develop a business case. One of the best things about Ruby is its ability to easily deal with aggregated data from multiple sources, making it a very strong component in an enterprise environment. The book outlines lots of different options for integrating with enterprise systems. There's a link to that book on my book list:

Ryan Heneise  |  Art of Mission  |  Now with extra-strong Donor Tools mojo

Re: Ruby in the Enterprise

Thanks for the book recommendation, I actually have that book already.   

The missing component, which I should have said, was they asked for my "unbiased" opinion.  Which is why I mentioned the fact that software development is hugely opinionated.  Even more though, I know they have are in a hugely complex situation, so I don't wanna push any certain language strongly without fully knowing all of the details of their side of the business.  If it's worth anything we are a telecommunications company (Voice, Video, Data, Wireless), they are the department which runs almost every enterprise application we have which number in the moderately high double digits.

Last edited by TonyDevlin (2007-03-23 18:56:08)