It's been awhile since my last blog post. Where I have I been? What have I been up to? Well there are a few answers to those questions. Answer one, I've been very busy implementing an enterprise-wide web single-sign-on solution in J2EE for
Ford Motor Company. Answer two, in my spare time, I've been bitten by the Ruby/Rails bug that seems to be spreading throughout many developers in the Java community and the larger web application development community as a whole.
Ruby is a highly dynamic, fully object-oriented programming language that has been getting a great deal of attention recently. The language itself is not all that new, it's been around for about 10 years. So why is it suddenly gaining tremendously in mindshare and popularity? The short answer is
Ruby on Rails. Rails is an open-source MVC web application framework that has quickly captured the attention of many well known Java developers and even more PHP and Python developers. The suite spot of Rails is the set of problems that require a web front-end to be tacked onto a relational database. This is a problem that is very easy to solve using Ruby and Rails. Solving the equivalent problem in Java requires much more effort and knowledge of frameworks and the J2EE stack. There have been some widely publicized performance metrics that state how much faster it is to develop this type of application in Ruby and Rails. I don't even want to quote those though, because I don't want to spark the performance/productivity debate here. In the end, I don't think that anyone should rely on someone else's performance/productivity metrics. I believe that the developer or team of developers should try both technologies themselves and see which technology makes them more productive.
While Rails has been the catalyst recently drawing people to Ruby, I do not think that Rails is the only thing making those developers content. Once they get to know Ruby as a language, I think that many developers are finding quite a bit to like about it. Its support for closures, code-blocks, and powerful metaprogramming capabilities are just a few of the nice things about Ruby.
A new book by best-selling Java author Bruce Tate, titled
Beyond Java, suggests that Java may have approached the peak of its popularity and is ripe for replacement by a more dynamic, and more productive language. Ruby is suggested as one of the possible successors to the mantle of most popular programming language that Java has held for the past many years. Rails is also discussed in Bruce's book and suggested as a possible disruptive technology that could propel Ruby to bigger and greater things.
So how do I feel about the future of Java? Well, if you are a Java developer today, I don't think you need to be shaking in your shoes or running out and finding a new job. Java has so much powerful commercial backing and gained acceptance in the enterprise market, that it will be very hard to displace anytime in the near future. Additionally, Java will certainly have a role as the language of choice for tough enterprise problems that may require interfacing with legacy databases, legacy applications, asynchronous messaging, and robust security. In order for Ruby to compete against Java more effectively in the enterprise space, I believe that Ruby needs some commercial backing, which is just not there yet today.
In a previous posting I did some months ago, I suggested that every Java developer should take the time to expand their horizons and learn other languages and see how problems are solved with technologies other than Java. Ruby and the Rails framework provide a perfect opportunity to take that advice and spend some time learning something new. It may be a valuable addition to your resume in the not so distant future.
Until next time,
Timothy
Here are some good articles to get you started with Ruby and Rails:
Four Days on Rails Rolling with Ruby on Rails : part 1 Rolling with Ruby on Rails : part 2