(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.