62 messages in org.codehaus.groovy.devRe: [groovy-dev] Groovy performance: ...
FromSent OnAttachments
Alex TkachmanFeb 19, 2008 2:09 am 
Steven DevijverFeb 19, 2008 2:37 am 
Alexandru Popescu ☀Feb 19, 2008 2:57 am 
Alex TkachmanFeb 19, 2008 3:03 am 
Patric BechtelFeb 19, 2008 3:12 am 
Guillaume LaforgeFeb 19, 2008 3:25 am 
Guillaume LaforgeFeb 19, 2008 3:26 am 
Patric BechtelFeb 19, 2008 5:05 am 
Gavin GroverFeb 19, 2008 5:51 am 
Steven DevijverFeb 19, 2008 5:52 am 
Guillaume LaforgeFeb 19, 2008 5:54 am 
Tom NicholsFeb 19, 2008 6:26 am 
Alex TkachmanFeb 19, 2008 6:28 am 
Guillaume LaforgeFeb 19, 2008 6:35 am 
Tom NicholsFeb 19, 2008 7:03 am 
Guillaume LaforgeFeb 19, 2008 7:38 am 
Chanwit KaewkasiFeb 19, 2008 7:52 am 
Charles Oliver NutterFeb 19, 2008 8:49 am 
Steven DevijverFeb 19, 2008 10:03 am 
Charles Oliver NutterFeb 19, 2008 11:38 am 
Steven DevijverFeb 19, 2008 12:11 pm 
Alex TkachmanFeb 19, 2008 12:39 pm 
Alex TkachmanFeb 19, 2008 12:48 pm 
tugwilsonFeb 19, 2008 1:36 pm 
Alex TkachmanFeb 19, 2008 8:51 pm 
Guillaume LaforgeFeb 20, 2008 2:10 am 
Jochen TheodorouFeb 20, 2008 9:46 am 
Martin C. MartinFeb 20, 2008 5:25 pm 
Guillaume LaforgeFeb 21, 2008 1:35 am 
Tom NicholsFeb 21, 2008 4:15 am 
Martin C. MartinFeb 21, 2008 5:44 am 
Tom NicholsFeb 21, 2008 6:22 am 
Smith, Jason, CTR, OASD(HA)/TMAFeb 21, 2008 6:34 am 
Martin C. MartinFeb 21, 2008 6:43 am 
Guillaume LaforgeFeb 21, 2008 6:48 am 
Guillaume LaforgeFeb 21, 2008 7:04 am 
Smith, Jason, CTR, OASD(HA)/TMAFeb 21, 2008 7:18 am 
Charles Oliver NutterFeb 21, 2008 7:38 am 
Guillaume LaforgeFeb 21, 2008 7:42 am 
Martin C. MartinFeb 21, 2008 8:36 am 
Martin C. MartinFeb 21, 2008 8:48 am 
Pascal DeMillyFeb 21, 2008 5:35 pm 
Gavin GroverFeb 21, 2008 6:21 pm 
Jochen TheodorouFeb 22, 2008 4:31 am 
Tom NicholsFeb 22, 2008 4:49 am 
Charles Oliver NutterFeb 22, 2008 11:43 pm 
Guillaume LaforgeFeb 23, 2008 12:28 am 
Martin C. MartinFeb 23, 2008 3:51 am 
Jochen TheodorouFeb 23, 2008 2:49 pm 
Jochen TheodorouFeb 23, 2008 2:53 pm 
Charles Oliver NutterFeb 24, 2008 2:01 am 
Martin C. MartinFeb 24, 2008 3:56 am 
Martin C. MartinFeb 24, 2008 4:11 am 
Charles Oliver NutterFeb 24, 2008 5:12 am 
Jochen TheodorouFeb 24, 2008 3:17 pm 
Jochen TheodorouFeb 24, 2008 3:31 pm 
Alexandru Popescu ☀Feb 24, 2008 3:36 pm 
Martin C. MartinFeb 26, 2008 2:20 pm 
Martin C. MartinFeb 26, 2008 3:15 pm 
Jochen TheodorouFeb 27, 2008 2:38 am 
Jochen TheodorouFeb 27, 2008 3:03 am 
Martin C. MartinMar 2, 2008 5:21 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [groovy-dev] Groovy performance: what to doActions...
From:Guillaume Laforge (glaf@gmail.com)
Date:Feb 20, 2008 2:10:03 am
List:org.codehaus.groovy.dev

On Feb 20, 2008 5:51 AM, Alex Tkachman <alex@gmail.com> wrote:

[...] But seriously. I think all of us know the reason. It is not only because of performance (which is very important factor) but also because sometimes people want to have static typing and some times don't. Right now their only option is nice Groovy syntax for dynamic part and pure Java syntax for static. But let me repeat - THEY WANT BOTH

People also want free food from top chiefs, affordable top model dresses from "haute couture" dressmakers, but it's not necessarily possible :-)

[...] You are 100% correct. I had many discussions with my ex-collegues in JetBrains, who are much better experts in languages then I, I would say who are real experts. and they claim the same - it becomes two languages.

And I agree with that. The question is "is it so bad"? And my answer is "no, as long as we and users understand what and why is going on" Vice versa, I believe there is demand and such approach will fulfill the demand.

Statically typed language experts will undoubtedly demand for such an approach. It's difficult to make the mental switch. I recently talked with a dynamic language expert whom I highly respect (and who's got a strong smalltalk background) agreed with me that this approach would bloat the language into two, for no sane reason -- and I won't list again and again all the good reasons why it's not such a good idea as I've already done it several times.

[...]

Secondly, the history of mixing two languages in one file has a very unhappy history. I have done a couple if implementations of languages which allow low level inserts and I never want to suffer the support issues caused by that again.

I feel your pain. One area which will become even more painful will be with support, to properly understand what's going on at the boundaries where both worlds meet.

Thirdly it lets you off the hook. Groovy performance was awful and is getting better (due, to a great extent, to your good work). Once people can switch of dynamic behaviour to get higher performance the motivation for dynamic performance improvement will dramatically reduce.

Agreed, and in the end, there's no added value to Groovy itself -- over 4 years of R&D for nothing.

Groovy's performance has gone from appalling to not so good (an people have produced perfectly good production systems with Groovy's appalling performance).

You said very right words "stop trying to fix unfixable". But look, do we have real choice? A lot of people use Groovy already and, what is much more important, A LOT of people start to use both Groovy and Grails on their new development or integrate it in to their existing products right now. Should we say to them "hey guys, go forward, but it might happen that in 6-9 months we will give you Groovy 2.0 with new MOP etc., which potentially will be huge breaking change"? I am not sure.

It is not necessarily a 'huge' breaking change. Trying to make Groovy users afraid of the future is a bad trick, and a sure way to loose users and damage the future of Groovy itself. That's a classical FUD technique to assert your ideas and claims.

<IMPORTANT NOTE FOR GROOVY USERS> There is no any direct or indirect agreed plans to make serious breaking changes in Groovy language or runtime. As always nobody want to create troubles for users just for fun or to simplify life of developers of Groovy Core. </IMPORTANT NOTE FOR GROOVY USERS>

At least that's a good thing you reckon it :-)

I believe that there are huge chances that breaking changes will not be huge. The problem is I would feel myself much more comfortable if we had design for so-called MOP 2.0 (I completely agree what existing MOP is suboptimal both in design and implementation), which fulfill just 2 but conflicting requirements - maximal compatibility with existing code - much better performance

These goals are just great and are not necessarily conflicting, as a rework of the architecture will certainly bring much better performance, and it should also be designed such as it remains faithful to the core value of Groovy which is seamless integration with Java.

[...]

Fourthly you have replaced one problem (how to implement a high quality dynamic language) with two (how to implement a high quality dynamic language and how to implement a high quality static language) If you are having difficulty solving the first problem how does adding a second problem help you?

Agreed.

[...] As I said I believe there is huge user demand for mixed typing. So I don't add new problem but reformulate existing one.

There is a higher demand for a top-notch Eclipse IDE support. And there's a good demand for higher performance (who wouldn't want it anyway?), but the answer is not necessarily mixed typing.

[...]

If the project were to adopt this suggestion I'm of the opinion that you would end up with a combination of a third rate dynamic language coupled with a second rate static language.

Yes, in the end, it would be very bad for the future of Groovy and its adoption.

-- Guillaume Laforge Groovy Project Manager G2One, Inc. Vice-President Technology http://www.g2one.com

--------------------------------------------------------------------- To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email