I've heard Groovy doesn't do Mixins. Is this true? I think this
makes it inferior to ruby (although I guess you could run AspectJ
against Groovy bytecode, right?)
On 4/25/07, William H. Mitchell <[EMAIL PROTECTED]> wrote:
I started out on a list of things to see if/how a new language has,
but I suppose I've ended up with more of a wish list:
Operator overloading, with arbitrary operators
Support for functions as values
Curried functions
Anonymous functions
Function composition
Tuples
Infinite-precision integers, with auto-transitioning
Labeling of data structures via pattern matching
Variable length argument lists
Metadata support, like Java's annotations
Run-time compilation of code
Preprocessor, just like C
Complete mutability--be able to augment/redefine integer
addition, for example
Implementation issues:
A good debugger (I like TDD but hands off my debugger! This
means you!)
Fast compilation
Ability to produce a standalone binary
It's interesting to note that things like object-orientation, garbage
collection, and exception handling have become so common that I'd
mostly finished my list before they crossed my mind.
Python does pretty well on the above list but for some reason I have
trouble getting excited about it. For years I'd admired Python from
a distance but after spending an afternoon with it, I was left with a
ho-hum feeling.
My experience with Ruby was the opposite from Python -- I didn't like
what I first saw with Ruby but the more I learned, the more I liked
it. Now I love it! I don't think that Ruby comes close to Icon's
elegance and cohesiveness but Ruby has largely replaced Icon in my
toolbox. (We'll see if Ruby rules for 24 years, like Icon did, if I
live that long...)
Now I'm reading through Groovy in Action. I have to say that Groovy
looks pretty good so far. Groovy's very close integration with Java
allows interesting mix-and-match with Java and a low hurdle for Java
programmers. In some ways the Java/Groovy relationship is like
C/C++. Lots of programmers (like me!) got interested in C++ because
it allowed them to move to OOP but still use C libraries. Groovy
opens the door for dynamic typing and great expressiveness without
losing the investment in Java libraries.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]