|
As a main Groovy developer, the Jochen Theodorou, that was spoken of above, I think I have to correct the above quite a bit. Yes, the distribution contains 2 jars now, one for the groovy parts being precompiled with the invokedynamic port as well as the invokedynamic implementation itself and another one. But! The other one is not a static version. It is the normal dynamic Groovy, that was it before. Of course you can use the indy jar and use non indy code as well as you can use @CompileStatic with it. Should there be any problems in mixing indy and static compilation, please report them, they would be bugs. In both jars indy is disabled by default and needs to be enabled on the command line or as compiler option if you want to use it. The problem with having precompiled groovy code in indy simply is, that it cannot run on a pre jdk7. The alternative would be to have no indy precompiled stuff in the distribution and we may take this path later on. So the difference between the jars is, that the second jar has additionally classes for invokedynamic support and precompiles some stuff using indy, while the non-indy jar has no indy classes and is compiled like before. Static compilation has absolutely nothing to do with it. So sorry, but you say above is large nonsense and please stop spreading non-facts and false flags.
Groovy 2.0.4 was released because of some critical bugs in stub compiler, that have been a bigger problem to other projects, that want to release soon a new version.
As for Groovy++. If you want to hear the full story, I will tell it you, but not in public, because I am respecting Alex, but what I would have to say about this, wouldn't sound like it and is not explained in a few lines of code. Let us just say that we had some very negative vibes between us. Him being my boss in the G2One days made things especially bad. Then about lazy evaluation... the way I know them is for example generators. There is an article on the Groovy wiki on how to make generators using groovy.lang.Closure. I don't think that lambdas in Jdk8 will allow for example partially uncompiled code or non checked code paths until needed. So the will effectively not be better than Groovy in terms of laziness. |
Looks like I misread the announcements about the 2 jars in Groovy 2.0. Perhaps someone should have corrected me when I first misexplained it in my blog 3 months ago (http://groovy.codeplex.com/wikipage?title=Blog02#13).
There are, however, other issues that go back much longer. During 2006-2008 I wasn't welcomed but instead ignored then ridiculed by many in the Groovy community. Besides the public stuff, there was much more through back-channels, which appeared to be instigated by the project managers. Regarding Groovy++ and static compilation, I started building "GRegexes" atop it so had a stake in its success. So when in July last year, those project managers started a parallel project under VMware control to do the same, it looked like they were again squashing anything not under their own umbrella, despite advertising API transformation hooks allowing others to independently plug their own functionality into (Codehaus) Groovy. I started speaking out publically about their behavior then. Not wanting to give up on Groovy, I started building a version atop Clojure around December last year. Lo and behold, within a week after 8 years of neglecting JSR-241, the Groovy project manager starts writing a tool to generate a "TCK" from the Codehaus Groovy tests, from which he intends to generate a "spec" automatically. Whatever tests the current version of the Codehaus implementation of Groovy happens to pass at the time becomes the latest version of the "spec". Any changes to the "spec" will effectively be discussions on the Codehaus mailing list and Jira issues.
After all this it looks like VMware don't really want anything related to Groovy that's not under their own direct control. Other languages embrace the anarchy: Perl has CPAN, and v6 has a spec with different implementations. Ruby has gems and an ISO spec with many implementations, and Rails was built outside Matz's control afaik by 37signals. Haskell has Hackage and a spec with many implementations, but the VMware project managers seem to be discouraging independent development like Groovy++ and GRegexes, and even stonewalling regarding a spec. I have only respect for your contributions to Groovy, as well as those of Cedric, Paul, Jeremy, and others I don't know about, but I have a lot of mistrust with the non-technical overlords at VMware. Perhaps that was how I misread what they said about the two jars in Groovy 2.