Having worked with PeopleSoft for over ten years, I’ve had the pleasure to experience the joy in building enterprise applications with a rapid and productive environment called PeopleTools. Although PeopleTools is now out-dated in comparison to more modern frameworks, it was (and still is) the most productive development framework I’ve ever worked with (i.e., for building enterprise applications).
Over the past several years, I’ve kept myself up-to-date with new programming languages, frameworks, and platforms and have seen lots of innovation in different areas. Some of it has been relevant to the enterprise, and some not. In the last decade, much of what’s influenced the enterprise software industry are ideas and products that have been successful on the web. PeopleSoft and its peers ported their client-server apps to the web because of the value it posed to its customers — cheaper and easier deployment of software. Today, the web continues to be the most disruptive influence on the enterprise.
The enterprise, however, is a very rigid landscape. Not much changes in this landscape unless it’s absolutely beneficial to the organization’s bottom-line. Today (and throughout the past decade), Java, XML, WS-*, SOA, and other ambiguous acronyms have been touted as the gold standard in the enterprise. An entire industry spins its wheels around this gold standard trying to make the promises of improving efficiency and productivity a reality. In my opinion, this gold standard is in need of change.
It might seem like I’m late to the party, but I’ve actually been tinkering with Rails since it’s 1.0 release, but as with any new emerging technology, you have to let it ferment a bit to see if it still smells pretty… especially when thinking of how it might affect the enterprise. Things move slow in the enterprise and there’s lots of red tape everywhere to make sure that the gears rotate at a slow clip. Most decisions are made by committee and if one party disagrees, it’s a show-stopper. So, getting Rails in the enterprise is not an easy thing to do. But you’re probably wondering why I think Rails is such a big deal for enterprise apps — at least for people who have to write enterprise apps. I’m not going to write about why Rails is an important technology. It’s been done, over, and over. What’s important to know is what Ruby is up against — the gold standard, Java. There’s been lots of feuds between the Java and Rails camps over the past few years and most of it is childish. It is obvious though that Rails struck a chord for many Java developers. Some have decided to join the Ruby camp, and some have held out thinking that this is just another fad. Well, I don’t think it’s a fad. Here’s my reasoning:
- Ruby on Rails is a super-productive environment for developing applications. It’s faster to build apps in Rails than in Java or .Net, hands down.
- Ruby is a powerful, easy to learn, fully object oriented language. Rails is nothing without Ruby.
- All the performance issues that Twitter (most popular Rails app known to man) is/was facing is not really relevant for enterprise apps. Point me to one enterprise application deployment needing to perform 11k requests per
minutesecond. Per Tim Bray, “Right now, Ruby and Rails, out of the box with not much tinkering, are plenty fast enough for lots of applications. I mean, really a lot of applications”
- JRuby. Java is not going to fade away. It is and will continue to be an integral part of the enterprise. JRuby allows Rails to fit into that environment and leverage the hell out of it.
- Ruby’s community is growing by leaps and bounds every day… and so are its gems (libraries), plugins, etc.
I’ve built many applications with PeopleTools, which has many similarities to Rails (with regards to productivity for developers). It’s still a good framework for building applications (arguably the best in its class), but it is behind the times. I see Rails as the next logical step in the enterprise apps business. Although, this might just be wishful thinking on my part.