Over the last few months I seem to have spent considerable time discussing, or more accurately arguing which dynamic language should be the choice of Java shops. The argument is really about which is a better framework, Rails or Grails and their respective languages Ruby and Groovy. I’d like to point out a few logical fallacies that seem to creep into the conversation.

Groovy is more like Java, so Java developers will transition to the language more easily.

There are really two problems with this argument:

  1. Do you really want a language with similar syntax to that of Java? Mandatory parentheses and curly braces are for compilers, not humans.
  2. If your developers need the crutch of “similar syntax” to transition to the new language, how are they possibly going to handle closures or blocks or meta-programming? These are the features of dynamic languages that make them so powerful.  This shift in paradigm that will baffle many programmers, way more than syntax that doesn’t “look” like Java.

    Groovy can make full use of Java very mature libraries.

    Great, so can JRuby. Oh, and so can Jython for that matter. Next argument.

    Grails uses best of breed technologies to provide similar Rails functionality.

    And Rails does too. It just so happens that the best of breed technologies are developed specifically for the Rails stack. This does not mean you have to use them, but you can be sure that they are going to work nicely together. Grails uses Spring, SiteMesh and Hibernate. Great technologies to be sure, but developed mostly independent of each other. Grails has done a great job of bringing these technologies together and in true “Rails” fashion, shielded the developer by encouraging convention over configuration. I’m just saying that if I drive a Porsche, I’m not going to replace the transmission from a Lexus.

    Groovy is an official JSR (Java Specification Request).

    So what? The JSR process is a committee driven process that in natoriously slow and generally broad in its results and catering to the lowest common denominator.

    Look, I’m not against Grails or Groovy. We’re using Grails on my current project and I don’t mind it. What I do mind are the inane arguments listed above that are continually thrown around. Please, sell the technologies on their merrits, not on uninformed opinion.