Original Source

James Ervin writes:

I am going to apologize for the incendiary title. I think the work the JRuby team has been doing at Sun, particularly with enhancing the JVM for dynamic languages, is great and a service to the entire Java community. The real point of this post is a question to Sun and the rest of the Java community. What is the question? Simple. Y’all why all the emphasis on JRuby and JRuby on Rails and not an equivalent amount of love (read: attention/resources ) to the Groovy/Grails platform? I am combining consideration of both Ruby and Groovy with their equivalent Web frameworks RoR and Grails since they really are the killer apps (read: primary motivation for developers to try them) for both languages at this time.

So why all the attention at Sun to JRuby? Well I think there is probably a mentality at Sun to think they need to win more people over to the Java platform. That thinking leads them to wanting to support Ruby and Ruby on Rails on the Java platform. This is not the end of the world or necessarily bad thinking. Why? Well you would think the more developers on the Java platform the "mo’ better" right? I admit that being a Groovy/Grails proponent, the attention leaves me a bit jealous, but as I said earlier, they have been doing good work and, you know, envy gets you nowhere. Still it begs the question, what about the people who are already on the Java platform doing their work? What is being done to improve their experience and to keep them happy working with the Java platform?

We believe this is a question that periodically arises when people compare the attention Sun has been giving to JRuby vs Groovy. To add a bit more to think about, why is Sun is officially supporting Jython too? If Sun is catering for the non-Java developers, convincing them to jump into the Java platform, what happens to all those developers that are happy with the Java platform? What will happen with those that are tired of it and may be considering switching out?

Groovy/Grails is native to the Java ecosystem and should be (read: is ) easier to support on the Java platform. Groovy/Grails has a far flatter (read: easier ) learning curve for existing Java developers. How do I know that it is an easier learning curve? Simple, Groovy is the single reason I have not really tried to do development work in Ruby or another dynamic language. Every time I started to drift off the reservation, for one reason or another, I found that Groovy had it already. So why give up the JVM or platform libraries of which I am very familiar? Grails, the Groovy Web Framework, is still a relatively young technology, but is already showing signs of being one of the, if not the, best Java web frameworks out there. It is amazing how Grails is picking up speed right now.

One important thing to notice is that Grails uses Groovy as a glue language but it doesn’t impose the language over the framework. Sure you can still code a Grails application in 100% Java, but you will be missing on the productivity gains a more expressive language (Groovy) can give you over your regular Java. What matters is that you still have choices, people build "hybrid" Grails applications mixing Groovy/Java as they see fit, eventually getting the job done, which is exactly what you try to accomplish in the first place.

Besides the fact that Groovy/Grails support should be far easier to achieve than Ruby/RoR support, there is the converse argument about JRuby and JRuby on Rails (JRoR?) bringing people to the Java platform. JRuby on Rails could also be viewed as a conduit for allowing development to leave the Java platform as well. Why? Well all new work could feasibly be run on native Ruby platforms if run on JRuby and, in fact, would probably run better on native Ruby platforms than inside the JVM.

The risk of people switching out of the Java platform because of RoR having better than JRoR exists, but the Java platform has a very rich ecosystem of libraries and server technologies, far richer that what Ruby offers today, which means that there is a better chance of people staying inside the Java platform that going out of it.

So, in conclusion, the question is, is it more important to convert others to the Java platform or is it more important to keep and take care of the large Java developer base on the Java platform? My answer is yes . What do I mean? Well you can’t just grow a community, you must also take care of what is already there, both aspects are important to a thriving community.

So please Sun, get past the NIH (Not Invented Here) syndrome and go hire a Groovy guy next to Mr. Nutter (no complaints for Mr. Nutter, he has been doing good stuff on the JVM for all dynamic languages). While you are at it, I am going to suggest (even though I am an Eclipse guy) putting better support in Netbeans for Groovy. I am getting a little tired of hearing how IntelliJ is by far the best environment for writing Groovy. I would also suggest improving the Eclipse plugin, but I don’t think y’all will go for that(would you?). Any help to Groovy would be in your interests, you wont regret it.

Charles Nutter and his team of developer and contributors have made great progress since Sun decided to hire him, they really have pushed JRuby to be a better implementation of the Ruby language in the JVM, we sure wish them the best, after all we all are good citizens on the JVM. Let’s also remember that Sun now has 2 full time employees working on Groovy support in NetBeans.

Tags: ,



Leave a Comment