Hi Philip -
I appreciate your feedback. I too have had a bit of a love/hate
relationship with Groovy. It annoyed me so much when I started using it
(your post a while back got me started in looking into it) that I tried
a few things, then dropped it. I recently thought I'd give it another try.
I agree with a lot of what you say. I attribute lots of these things to
the "newness" of the language and implementation. For instance, I can't
build things using Maven (yet) - but I expect that within the next 6
months that will be fixed.
I too was frustrated by the Eclipse plugin - and still am. To at least
get somewhat current I use the "development" edition - it's at release
1.5 (compared to the Groovy release at 1.56).
With the current dev level groovy plugin (1.5.5, released April, 2008),
there is a slow startup when starting Eclipse, caused by "rebuilding the
groovy projects" but other than that, I don't notice any slowdown. I
get around the annoyance of the slow startup by clicking the "run in
background" button when it appears.
I still like the language richness - especially the builders, the
closures, and the GPath kinds of things for working with XML and
friends. The next release (which I haven't tried) has a url which says
it all...
http://docs.codehaus.org/display/GROOVY/2008/05/02/Groovy+1.6-beta-1+release+with+great+performance+improvements
I'm hopeful that time will improve things :-)
Thanks for your thoughts. -Marshall
Philip Ogren wrote:
Marshall,
This may be frustrating/annoying feedback. Last summer I sent a few
emails to the list about unit testing uima components using groovy and
probably said a few other positive things about groovy. We have since
abandoned groovy for a variety of reasons. Here are a few:
- unit tests on code that do anything slightly useful parameterized
types did not work correctly on mac/unix
- eclipse slows down because it seems user actions are constantly
waiting for groovy to compile
- refactoring code is not as seamless
- it adds one more moving part to e.g. download/install instructions
and makes distribution incrementally more complicated
- the eclipse plugin is not keeping pace with versions of groovy - so
we felt stuck with groovy 1.0.
We really aren't groovy experts and so there may be reasonable
counterpoints to these annoyances that we encountered. But any
perceived advantage of making groovy groovy was outweighed by our
general annoyance with this language. I hope others find these
comments useful.
Philip
Marshall Schor wrote:
I just committed a very experimental version of the Open Calais
annotator to the sandbox, called OpenCalaisGroovy. As you can
probably guess from the title, it uses the programming langauge
"groovy" (google groovy) - which is an extension of Java. The
details about trying this out are in the Readme.txt file.
At this point, the annotator doesn't run on real results from Open
Calais, but rather on test data that they make available for download
- about 333 "news" stories. There is a special collection reader
that reads the files in this set and sets up a CAS with the input
text and a new FeatureStructure containing what OpenCalais would have
responded with. A separate annotator takes the response as
specified, and constructs Entities, Relations, and Instances,
following the model that Open Calais is using.
This implementation uses the JCas, and there is a complete set of
JCas types defined for all the Entities and Relations that Open
Calais produces.
This is my first try at doing things in Groovy - so it may not be
done in the ideal groovy way :-) - but it's interesting code to look at.
The Readme tells how to run it - you'll need the Eclipse Groovy
plugin (maven build is not yet working due to bugs in the maven
groovy builder supposedly fixed in a SNAPSHOT release, but I'm
waiting for the next release candidate - this is still early in the
evolution cycle).
Feedback / improvement welcomed and appreciated!
-Marshall