If at first you don’t succeed…

Anyone who has been following my blog, probably knows that I have been working on some PoC work with Buildr at my office. Well when it came down to it, my boss and I decided that Buildr just isn’t quite ready for our office. After we came to the sad realization that I wouldn’t be able to use this opportunity to inject some Ruby love into my workplace, we got to talking about Ruby as a language.

Max, my boss, is very open to trying new languages and/or techniques in the office, but he does so in a much more cautious way than I would. I imagine this is because he is responsible for the entire department, while I am responsible for… just keeping my job. That being said, he told me if there was a prooof of concept that could be done to try out Ruby or in our case JRuby on Rails he would be open to the opportunity.

Well lucky for me that same day a project came across my radar, that was just that. We needed a quick site to test a potential business plan, and my initial reaction was, “hack it up in ColdFusion”. But as I told Max and Brian, while sitting on my thinking chair, I put two and two together, and got….Marvelous Ruby love. So on Thursday I pitched the idea that we use this quick and dirty project to test out JRuby in our environment. The project fits perfectly because we already told “the business” that whatever we do is just a proof of concept, so if their model works phase II of the project will have to invest time in doing it “right”. So if we find out the JRuby on Rails isn’t for us then we simply fall back to standard Coldfusion with Fusebox 5 practices and hook into whatever Java libraries we previously were using.

Let this be a lesson to all you Ruby hopefuls out there. At some point your boss will give into a PoC in hopes that you will fail misserably and stop talking about it because you are too embarrassed to bring it up anymore, so you can proove to him that Ruby is a much better language than ColdFusion.

This entry was posted in development and tagged , , , , . Bookmark the permalink.

4 Responses to If at first you don’t succeed…

  1. Maxim Porges says:

    “At some point your boss will give into a PoC in hopes that you will fail misserably and stop talking about it because you are too embarrassed to bring it up anymore, so you can proove to him that Ruby is a much better language than ColdFusion.”

    Dude, that’s totally not why I have you doing this… :)

    I sent an email to the other directors today with the 5 most compelling reasons why we should switch to JRuby from CF. I’ll post them here as a show of support.

    —————————

    1) JRuby is free, unlike CF (which we have to upgrade about once every 24 months at between $2,000 and $4,000 per CPU). The platform is being maintained by Sun, and we can get paid production support from ThoughtWorks.

    2) ColdFusion and its frameworks are looking long in the tooth compared to newer offerings such as Ruby on Rails and Groovy on Grails. However, since Rails has the most support and production implementations, it’s the more mature platform and thus we’re evaluating it first.

    3) Ruby, as a language, is very powerful and terse. We’re expecting some attractive productivity improvements by making the switch from CF, which is verbose and tag-based. Rails is great for little web apps and admin solutions, which are a lot of what the web team produces. I can also easily see us building admin systems in Rails to support our internal Flex-based applications.

    4) JRuby allows Ruby code to call Java and vice versa leveraging the JSR-223 embedded scripting support in newer versions of Java. This means we can integrate Ruby with our Java infrastructure just as well as we can with CF today.

    5) Preliminary discussions with my associates in the community indicate that JRuby scales and performs similarly to CF.

  2. Miro says:

    I would not be so sure about #5. Do not know how good or bad is CF performance, but currently there is lot of indication that Ruby based stack is a bit heavier a slower than the PHP or even Python based solutions – both wrt to the hardware requirements and throughput. And JRuby is currently slower than the Ruby C-based implementation.

    All this will hopefully improve soon and also people will learn how to optimize Rails deployments, but right now the core performance is not Ruby’s and Rails strongest features. There are companies that know how to make Ruby/Rails performant and scalable (like DHH’s company) but it requires lot of skills and one cannot expect miracles right out of the box.

    Having said that, I am NOT saying that this was not a great decision :-). I am big fan and supporter of Ruby/JRuby/IronRuby and am daily amazed by Rails’ beauty. JRuby is a bliss – it allows you to sneak Ruby into pure-Java enterprise environment using the well known “no no no, we are not abandoning Java and it is just another jar” backdoor :-).

    I would certainly add another positive item your list – #6: it is so much more fun to code in Ruby. Seriously. And having happy developers is great news for the team and for the boss as well.

    My $0.02

  3. Daniel Roop says:

    @Max
    Thanks for the vote of confidence

    @Miro
    JRuby especially has been making huge performance gains with it’s 1.1 release that is due out in the next month or so, so much so that one of the head developers recently made a post proclaiming that the compiler is done for JRuby and it is significantly faster than Matz Ruby, and the interpreted mode JRuby in 1.1 is almost as fast as Matz Ruby.

    As for the deployment and scalability, JRuby and Rails will scale just like ColdFusion, hence #5. They are both simply bundled wars on a Java Application Server. They scale as any other Java application will. Which I can assume is as good if not better than a LAMP stack (which you were comparing it to). In addition, JRuby is being supported on more open source platforms, where ColdFusion is only supported on JBoss. So that is another cost saver, we can use GlassFish, JBoss, or Geronimo. I am pulling for GlassFish it seems to be making great strides as a server lately.

    On your addition of point #6 I agree. Unfortunately until I get other people writing it at work, they usually don’t understand this point. To actually enjoy coding is something people associate with starry eyed interns who have never had a programming job before. I along with any one else I know who has taken the Ruby plunge has had the same experience…coding is fun again. I think this is mostly because the creative aspects of development come back into play. It isn’t just cookie cutter code any more, Ruby allows you to be so expressive, you can make it read like a book.

    Thanks for the $0.02.

  4. Kola Oyedeji says:

    Great

    Looking forward to hearing all about it – either here or on Max’s blog :)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>