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