I am a Java proponent and have been following Ruby for some time. I agree that Ruby on Rails is a great platform, and that Ruby is a great language. However, I have a few reservations because of which I have not converted over:
- Ruby's dynamic typing as against Java's static typing. While static typing brings some amount of rigidity, it also makes the application debugging very simple. I would give more marks to maintainability and longer program life than the rigidity that the developers have to deal with.
- Ruby is interpreted. Again this is easy in development where the developer can just reload the browser (like for PHP or Perl), but in Java there is one extra compilation step. However, all said and done, this will make Java applications faster than any interpreted language. Again, I'll go with that. I do not mind typing three letters a-n-t and pressing enter. That's all that it takes to compile.
- A lot has been said about Java's low productivity and large LOC count. One has to understand that most of the LOCs of a Java program get wasted in getters and setters. I do not personally like this feature, but then there are automated ways of generating them (or copy/pasting them), so I do not imagine any Java developers wasting a good deal of time on getters and setters. Thus, while the LOCs seem to be a lot, there is no much of time wastage, nor is the program getting more complicated.
Productivity - Actually there are ways to be very productive with Java. Most of them have come outside Sun - hibernate, ant, xdoclet are just a handful of them. But these choices are available to Java developers.
- Java still happens to have the richest set of libraries/frameworks bundled with it, and built around it. From J2ME to J2SE to J2EE space, A Java developer never has to worry about something not being there.
Anyways, Ruby does not have to eat into Java space. (There are other more deficient languages/ technologies to eat into :) ) Extrapolating from the past, it's safe to predict that they both will coexist in the technology space, capitalizing on their strengths.
Comments are welcome,
/Ashish
--
Ashish Belagali,
Acism Software Pvt Ltd, Pune, India
Ph +91 20 25454409
http://www.acism.com
You are right - both Java and Ruby will co-exist. However, the growth in Ruby is exponential (reminds me of the 1998/1999 Java days) and with Sun, Microsoft, IBM, Google adopting Ruby, it is bound to go places.
Satish Talim
Learning Ruby