19 September 2006
Groovy: The missing Java language
I’ve written about my disdain for Java before. It is perhaps the most enterprise-y language the world’s seen since COBOL. Its full of features that cripple what developers know. And yet, it’s here and we must deal with that.
One thing I’ve also held to is that Java is actually many technologies. In Microsoft, you have C# (language), .net (library), ASP.net (framework) and Windows (platform). With Java, you have Java (language), Java (library), JSP (framework) and Java (platform). And I can appreciate the benefits the Library and Platform offer you, and that some people may like JSP, but the language is the kind of depression that can only be created by committee.
Sun holds Java-the-language as an uncompromising ideology. It is a model of programming-done-right. And it is so concerned about being a responsible parent that the language makes design decisions for developers!. When Microsoft said functions could at least be second-class citizens in C#, Sun kept them at third class, spit on them at told developers to go forth and use nouns. A noun in place of a function: what could be more enterprise-friendly?
Fortunately, Javas stuntedness is well recognized. For at least a few years, there has been a syntactic wrapper to Java called Groovy. It’s only a wrapper, so it won’t do wonders. Functions are still third class. But at least some of the brain-dead best practices Java affords Fortune 500s have been lessened. It’s not perfect, either: witness the removal of semicolons. But it beats writing void setName (String name) { this.name = name; } String getName () { return this.name; } for the 800th time.
There are so many things wrong with Java that it could give Shakespeare Repetitive Strain Injury just from trying to document them all. But a start to fixing it all would be to bundle Groovy with the JDK (or whatever they call it now).

