Running Into Rails: Why Ruby + Java (Part 3)

(For a brief recap of our journey, check out Part 1 and Part 2 of this series)

Before we discuss the why, let’s start out by reviewing the criteria with which we approached this process.

First Trifecta

  • Performance
  • Scalability
  • Speed to Market

Double Trifecta

  • Innovation
  • Community
  • Team Growth

Triple Trifecta

  • Love the Company (We already do)
  • Love the Projects (Yup, this one too)
  • Love the Code (We didn’t as much … until now)

Performance & Scalability

Ruby, PHP and Java have all proven their competence here. Many top-trafficked destinations use these languages to power their apps and sites.

Speed to Market

Ruby shone in this area more than the others. Our environment is extremely fast-paced. We work a 40-hour workweek, but get a TON done in those 40 hours. When we did our deep dives of each technology, we found Ruby fit our needs better. It felt more expressive and elegant … and powerful. One of our PHP advocates has already been able to leverage Ruby on Rails (RoR) to construct a proof-of-concept app he would have otherwise wireframed in a tool like Balsamiq. It turned out to be easier (and nearly as fast) for him to prototype a design in Rails than to build static wireframes.

Innovation

Java and PHP seem to have reached their maturity and are extremely well documented. Several frameworks are available for each. Ruby, while it’s been around as long as PHP, is still reaching that maturity. It’s stable but still innovating like crazy. I’m sure arguments could be made either way here, but for us, we see significant growth with innovation for RoR.

RoR defined a methodology for building web apps that has been copied by frameworks on many other languages. The RoR community has continued to innovate and set best practices for conventions, testing, extensibility, integration and view tier technologies. So often, we find that “there is a gem for that” in answer to many challenges. Arguably, the entire web development community continues to watch where the RoR community is going, and everyone benefits from the innovation.

Community

The Ruby community as a whole seems similar to us in many ways. Existing open source projects continue to develop and grow, and new ones show up all the time. Contribution to the community is a focus. It seems to embrace the startup/entrepreneurial spirit. This works well with how we operate as a business.

As a community, Java seems very enterprise focused, not start-up centric. Yet for the services platform for which we’re using it, an enterprise-focused mentality is just what we need. And, lots of community support and resources are available to guide us.

Team Growth

While there are more jobs postings for PHP, Ruby fits our team’s growth strategy better. Because the barrier to entry for PHP is lower, much like ColdFusion, the code samples we receive from applicants that are written in PHP are consistently less sophisticated than Ruby or Java samples we receive. That’s not indicative of the language’s ability; it has more to do with the talent pool we’ve experienced. RoR forces use of OOD constructs and has a higher barrier to entry. Back to community—we’re very entrepreneurial-minded, and we want to hire developers with the same mindset. Does Ruby own the market here? Absolutely not, but we’ve found that mindset to be more common with Ruby developers.

Love the Code

Many of our PHP and Groovy advocates, after seeing the expressiveness of Ruby, are super excited (not to mention our resident Ruby advocates). Writing services in Java is just plain efficient and performant. While we’ve been able to do a lot with ColdFusion, we’re energized by our move to Ruby + Java. Their communities, open-source landscapes and leverage help us grow the business and reach even more people!

This choice works for us, though we don’t advocate it’s the “right” choice for everyone. If you’ve switched languages, we’d love to hear which language you moved to and why.

  • http://adamwadeharris.com Adam

    I’m really glad ya’ll switched. I’ve thought about applying there before, but the fact that ya’ll used ColdFusion was one of the biggest reasons I never did. I hope ya’ll have fun!

  • http://www.nerdydork.com Dustin Davis

    I started learning to Ruby on Rails 5 years ago, but then I learned about Python & Django. I went that direction instead.

  • http://JoshuaRivers.net Joshua Rivers

    I am currently working on learning more about Java and RoR. I definitely love what I’ve seen and heard about RoR and am looking forward to dive into it more.

  • http://twitter.com/trg83 Tim Garrett

    Just curious–are you planning on running Ruby on Rails on the JVM as well?

    • Jeremy McDuffie

      At the moment we are planning to run native Ruby and see how that works for us.

  • John Strack

    I’m curious about the switch. u00a0How did everyone get up to speed with Ruby? u00a0Is everyone there just up to speed on the latest technologies? u00a0Did you all take classes to learn? u00a0Read books? u00a0Something else? u00a0Did anyone have trouble with the change?

    • dugsmith

      Great question, John! We are doing a combination of things. We gave everyone a copy of “The Rails 3 Way” by Obie Fernandez to start, as a reference. We then outlined about a week of online training, starting with the “Ruby Programming Online Course” byu00a0http://pragmaticstudio.com. It’s a great intro to Ruby, TDD with RSpec, and goes all the way to building a first gem.u00a0nnFor Rails, we used several of theu00a0http://www.codeschool.com onlineu00a0classes to get a good overview of Rails. Several of the developers have also worked through the Michael Hartl tutorial at http://ruby.railstutorial.org/u00a0on their own.u00a0nnFrom there, we’ve just finished our first “Lampo-specific” Ruby on Rails training. Our goal is to help the team learn how we’re going to use Rails here: our standards and practices as they are evolving.u00a0nnThe change is gradual, but progressing very well. We plan to completely migrate over a 2-3 year period, as we have many apps that need to be moved over when it makes sense. The team is excited and we are very pleased with the initial wins we’ve seen as a result of the move to Ruby.u00a0

  • smassey3

    I have one year experience at CSC coding a Web application with ColdFusion and SQL Server 2005.u00a0 I am trying to decide right now if I want to continue my work with ColdFusion at this point or jump over to Ruby On Rails. I started studying Ruby On Rails this week. So far it looks great

  • arthur

    In your research did you look at erlang or MUMPS…

  • O.c. Bound

    Love CF, I’m sorry to hear you all have switched. I work in DC and there are still plenty of companies and branches of the Government using it. From a job seeker’s point of view, there are less CF jobs, however as you said CF’ers are difficult to find, so it evens out.

  • Bryant Brabson

    I’m a firm believer in using the right tool for the job, and by extension, the right technology stack for the organization. I think that your reasoning was sound, and that you can’t go wrong with RoR.

  • John Eubanks

    I have been looking at tools like durandal….granted, it is all javascript, but it is very impressive. I have looked at RoR in the past and am looking at it again. CF is great, don’t get me wrong, but the technology being used should be dependent upon what you are trying to accomplish.

  • http://quickanddirtyworshipleader.com/ Nathanael Schulte

    Man, if my wife would ever consent to move Nashville, I’d apply in a heartbeat. Rails just makes it that much more attractive.nI’ll have to be content with my ASP.NET MVC / jQuery / Windows 8 app development in St. Louis for now.nnBy the way, do you guys expose any of your RESTful API’s publicly for developers interested in tying their apps in with your data?

  • Anita

    Can you share with us if you have used any automated coldfusion application migration tools to convert your legecy code from codefusion to Ruby on rails or JAVA.

  • User

    Will you share with us if you have used any automated migration tool for converting you legacy coldfusion application to ruby on rails or JAVA. And please share all the pros and cons you are had in the convertion.

© 2017 Lampo Licensing, LLC. All rights reserved.

www.daveramsey.com