

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
62 messages in org.codehaus.groovy.devRe: [groovy-dev] Groovy performance: ...| From | Sent On | Attachments |
|---|---|---|
| Alex Tkachman | Feb 19, 2008 2:09 am | |
| Steven Devijver | Feb 19, 2008 2:37 am | |
| Alexandru Popescu ☀ | Feb 19, 2008 2:57 am | |
| Alex Tkachman | Feb 19, 2008 3:03 am | |
| Patric Bechtel | Feb 19, 2008 3:12 am | |
| Guillaume Laforge | Feb 19, 2008 3:25 am | |
| Guillaume Laforge | Feb 19, 2008 3:26 am | |
| Patric Bechtel | Feb 19, 2008 5:05 am | |
| Gavin Grover | Feb 19, 2008 5:51 am | |
| Steven Devijver | Feb 19, 2008 5:52 am | |
| Guillaume Laforge | Feb 19, 2008 5:54 am | |
| Tom Nichols | Feb 19, 2008 6:26 am | |
| Alex Tkachman | Feb 19, 2008 6:28 am | |
| Guillaume Laforge | Feb 19, 2008 6:35 am | |
| Tom Nichols | Feb 19, 2008 7:03 am | |
| Guillaume Laforge | Feb 19, 2008 7:38 am | |
| Chanwit Kaewkasi | Feb 19, 2008 7:52 am | |
| Charles Oliver Nutter | Feb 19, 2008 8:49 am | |
| Steven Devijver | Feb 19, 2008 10:03 am | |
| Charles Oliver Nutter | Feb 19, 2008 11:38 am | |
| Steven Devijver | Feb 19, 2008 12:11 pm | |
| Alex Tkachman | Feb 19, 2008 12:39 pm | |
| Alex Tkachman | Feb 19, 2008 12:48 pm | |
| tugwilson | Feb 19, 2008 1:36 pm | |
| Alex Tkachman | Feb 19, 2008 8:51 pm | |
| Guillaume Laforge | Feb 20, 2008 2:10 am | |
| Jochen Theodorou | Feb 20, 2008 9:46 am | |
| Martin C. Martin | Feb 20, 2008 5:25 pm | |
| Guillaume Laforge | Feb 21, 2008 1:35 am | |
| Tom Nichols | Feb 21, 2008 4:15 am | |
| Martin C. Martin | Feb 21, 2008 5:44 am | |
| Tom Nichols | Feb 21, 2008 6:22 am | |
| Smith, Jason, CTR, OASD(HA)/TMA | Feb 21, 2008 6:34 am | |
| Martin C. Martin | Feb 21, 2008 6:43 am | |
| Guillaume Laforge | Feb 21, 2008 6:48 am | |
| Guillaume Laforge | Feb 21, 2008 7:04 am | |
| Smith, Jason, CTR, OASD(HA)/TMA | Feb 21, 2008 7:18 am | |
| Charles Oliver Nutter | Feb 21, 2008 7:38 am | |
| Guillaume Laforge | Feb 21, 2008 7:42 am | |
| Martin C. Martin | Feb 21, 2008 8:36 am | |
| Martin C. Martin | Feb 21, 2008 8:48 am | |
| Pascal DeMilly | Feb 21, 2008 5:35 pm | |
| Gavin Grover | Feb 21, 2008 6:21 pm | |
| Jochen Theodorou | Feb 22, 2008 4:31 am | |
| Tom Nichols | Feb 22, 2008 4:49 am | |
| Charles Oliver Nutter | Feb 22, 2008 11:43 pm | |
| Guillaume Laforge | Feb 23, 2008 12:28 am | |
| Martin C. Martin | Feb 23, 2008 3:51 am | |
| Jochen Theodorou | Feb 23, 2008 2:49 pm | |
| Jochen Theodorou | Feb 23, 2008 2:53 pm | |
| Charles Oliver Nutter | Feb 24, 2008 2:01 am | |
| Martin C. Martin | Feb 24, 2008 3:56 am | |
| Martin C. Martin | Feb 24, 2008 4:11 am | |
| Charles Oliver Nutter | Feb 24, 2008 5:12 am | |
| Jochen Theodorou | Feb 24, 2008 3:17 pm | |
| Jochen Theodorou | Feb 24, 2008 3:31 pm | |
| Alexandru Popescu ☀ | Feb 24, 2008 3:36 pm | |
| Martin C. Martin | Feb 26, 2008 2:20 pm | |
| Martin C. Martin | Feb 26, 2008 3:15 pm | |
| Jochen Theodorou | Feb 27, 2008 2:38 am | |
| Jochen Theodorou | Feb 27, 2008 3:03 am | |
| Martin C. Martin | Mar 2, 2008 5:21 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread 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 do | Actions... |
|---|---|---|
| From: | Martin C. Martin (mar...@martincmartin.com) | |
| Date: | Feb 21, 2008 8:36:04 am | |
| List: | org.codehaus.groovy.dev | |
Guillaume Laforge wrote:
On Thu, Feb 21, 2008 at 3:44 PM, Martin C. Martin <mar...@martincmartin.com> wrote:
[...] Well, I'm not talking about changing anything in Groovy distribution at all. Not even adding an annotation or a keyword. Guillaume and others have been very clear about that, and I respect that. So don't install a 3rd party patch, it won't affect you.
But I think it's an important question to ask: where can we reduce dynamism and still get all the features we know and love? Is there some other way to write the code that's about as clean, has the same features, but is a lot faster?
Do you think it's worth trying that, at least as an experiment to help drive the evolution of a FastGroovy?
FastGroovy isn't Groovy anymore. It's a fork, it's another language.
There are many, including the core Groovy team, who see it as another language. There are many others who see it as a small extension with limited impact.
[...] Going through the MOP doesn't need to be a deal breaker, as long as you can interrogate the MOP at compile time and, in common cases, find out what will be called. After all, you, me and the IDEs know (or guess) what myList.each { ... } calls. We rely on that understanding when we're writing code, and if it resolved to something else, we could be quite confused. (There are many valid cases where it could resolve to something else, e.g. a "profiling MOP" that intercepts the method call to increment a counter before doing the call, or for mocking during testing, etc.)
That's here you're failing to see what a MOP is, and forget about its dynamic nature. At runtime, anyone is able (if he so desires and it'll still be valid Groovy) to change anything, even the semantics of 1+1, of myList.each {}, etc. We can't make assumptions that no such runtime changes in behaviour are happening, and the compiler would in the end generate invalid code which would break all the goodness added by a framework supporting dynamic features and runtime modifications.
Let me state it again: Groovy is a dynamic language.
Going against this would be betraying the core values and philosophy of the language.
You're right, this extension would change a basic tenant of Groovy as it is today. In circumstances controlled by the programmer, they could take away the ability of anyone to change the semantics of certain objects or pieces of code. The idea is that they'd use this in cases where they don't want those kinds of dynamic behaviour anyway. After all, you lose that (and a tonne of other stuff!) when you rewrite in Java. So there are certainly times when you don't miss it.
I see this as an interesting extension, the ability to turn something off when you don't need it. I don't really understand your use of the emotional term "betraying." Is it really so important to have the ability to do dynamic things always, even when you don't want to do them? To me, it wouldn't be a fundamental change to Groovy to be able to tell the compiler "Thanks for all those nifty features, but in this one situation, I'm not using that one particular feature." I have a hard time understanding your argument as more than "being as dynamic as possible is always good no matter what." You've brought up some valid points, such as overuse of the feature leading to ugly (and therefore harder to read, understand and maintain) code. I think doing some experiments would help understand how this would be used and abused. That's really all I'm saying.
--------------------------------------------------------------------- To unsubscribe from this list, please visit:







