On 22.06.2016 18:55, Mr Andersson wrote:
[...]
We, at our company can only ship groovy if it is fully static, no way to
manipulate. It's difficult to hammer it through otherwise. Big
enterprise JEE companies don't take risks, especially when the tools are
handed over to 5 000 dev across the globe.

We have to know that nobody will start utility the crazy ( but neat )
features of the dynamic parts of Groovy, but we like that it is such a
powerful language, and easy to learn for any java developer that it
would be a smash hit.

yeah, I have a lot of plans in a direction that allows more control about the runtime meta programming and actually allows classes to immunize themselves against meta class changes. The basic concept and the ideas are there, the detail work and a good plan to migrate current Groovy to that version is very difficult to do.

[...]
I had alot of useful code that I can never use or pull out, because it's
just to dynamic. Over time one starts to realize how important it is to
know at compile time that things will work.

do you have a different Java than I have? No seriously, even with the infamous Haskell I would not assume that my program is correct just because it compiles.

[...]
I have been in love with this language, and even wrote my masters thesis
about it.

really?about what exactly?

It has so much potential, even to replace Java. It's power is it's
syntax and it's closeness to Java syntax.
Adoption in the Java community would be massive if it were more static.

And you tell that a person that did hear about people not accepting the language already just because of the name. I know about cases in which a company did not use a library because it is written in Groovy... just because it is written in Groovy. All that would not change with static compilation by default at all.

[...]
I am not sure how well, performance wise Groovy does compared with Java,
Scala, Kotlin, Ceylon and so on. If it is close, then I say just offer
us a static version with what you have. You are so close now.

static Groovy is on par most of the time, dynamic Groovy depends, but I think it is more in the range of being 2.5 times java (100ms runtime becomes 250ms). I think that is close enough.... and there is still some potential

But I would still like to argue that maybe Groovy needs to be rewritten
from scratch in order to perform even better. But I know little about
this and have little experience with the @CompileStatic annotations
because I have been away from this language for so long.

For better performance of dynamic Groovy we need to rework the MOP. For example not using exceptions for missing properties and such. But I say this for too long already.

[...]
Groovy++ died, but at that time, the Israeli guy that pushed for it,
didn't deliver to the end, because probably he tried to utilize the core
groovy, but back then everyone was looking forward to it.
Eventually parts of it got absorbed into the Groovy core if iam not
mistaken.

Alex is a bright guy, good for new concepts, good for prototypes, but no man for the detail work. That´s why groovy++ died. At no point did we include source code from Groovy++. Concept wise the static compilation we have now is not inspired by Groovy++. Groovy++ simply tried to apply the static type system of Java, that was something we always did feel is not good enough. In Groovy we are now using a limited form of inference types, based on flow typing. Also an old concept, but normally not used in that way. Of course Groovy++ had more to offer than just static compilation. But again our traits are for example similar to what Groovy++ had back then, but the concept is much more worked out and actually based on what Scala did. I for example would also like to bring the async/await concept from C# to Groovy... copying the juicy parts from other languages is always something we did, if they fit.

bye Jochen

Reply via email to