The announcement of Groovy being submitted as a JSR has caused a maelstrom of
reactions from people asking all kinds of questions:
- Who will lead the JSR?
- Who will be part of the Experts Group?
- Who will write the TCK?
- Where will the source be kept?
Those are all good questions which will need to be answered in time, but
until then, I notice that everybody is making a very important assumption:
that JSR 241 will be accepted by Sun.
This outcome is far from being guaranteed.
Actually, I am pretty sure that Sun will refuse this JSR, for a number of
reasons. Maybe the justification will be technical (the language is too
young, community is too small, it looks like Java but it’s not quite Java,
etc…) but I believe the real reason is strategic.
Simply put: Groovy is a very real threat to Java.
Do you remember how five years ago, C++ users used to laugh at the simple
idea that Java might one day displace C++ in enterprise applications?
Well, for all I know, maybe in five years from now, Groovy (or another
"scripting" language) will have become mainstream and we will be wondering how
can Java programmers not be disgusted by the complexity of their language of
Don’t get me wrong: I am a Groovy fan. Ruby used to be my
scripting language of choice and over these past years, I have accumulated a
certain number of Ruby scripts that are working really well, but right now, I
can’t think of any reason to use Ruby when I have Groovy.
Groovy does everything Ruby does, with three additional points:
- Its syntax is Java-like.
- It has access to the entire Java objectscape.
- It can compile to .class files.
For all you know, the next ejbgen.jar that I ship could be written half in
Java and half in Groovy. You won’t notice. My regression tests won’t
notice. And the version after that might be 100% Groovy.
And this is precisely what should worry Sun. And why I think Groovy
will not be accepted as a JSR.
But I wish good luck to James and I sincerely hope I’m wrong.