Hi,
 
Forwarding this message to the Maven Developers to get the insiders views on
the choice of implementation language for writing Maven2 Plugins (Please
read my mail below). Your reply will be very much appreciated. I have tried
searching the mailing list archives but haven't found a relevant discussion
thread on similar topic.
 
Thanks,
Ritu

  _____  

From: Ritu Kedia [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 17, 2007 7:14 PM
To: '[EMAIL PROTECTED]'
Subject: Choice of implementation language for writing Maven2 Plugins


Hi,
 
We are currently investigating the implementation language for writing
Maven2 Plugins. 
We have looked at all the 3 options available today in Maven2, namely:
- Java
- Ant Scripting
- Scripting Languages (looked at Beanshell, Groovy, JRuby)
 
Our parameters for evaluation are:
- Maturity of the platform
- Ease of Development 
- Ease of Maintenance
- Performance 
- Available set of tools/libraries required for Plugin development
 
Based on our analysis/requirements we have reduced our choice of
implementation language to:
Java OR Groovy
 
In terms of Performance, Java would beat the scripting options by a big
percentage. However for build activities, which involve heavy Disk IO tasks,
the performance comparisons would have to be looked at differently. For
instance we compared the performance of a pre-compiled Groovy script with
Java where both of them issued 100 Copy statements on a directory containing
10 files of 10KB each and both Groovy and Java used the same Java libraries
to do the Copy. The execution times were almost on par. We would like to
know if others have done similar profiling and have results/experience that
they can share. Performance is an important factor in our decision making
and so any comments on this would be much appreciated.
 
In terms of Maturity, Groovy is yet to come up the mark. But given that it
is in the process of being standardized as the sanctioned scripting language
on Java Platform (JSR-241), I would expect it to be a safe bet.
 
In terms of Ease of Development and Available set of tools/libraries for
Plugin development, Groovy's AntBuilder seems to be a very attractive
option. We have also taken a look at the available Maven Plexus Utilities
for the same. Firstly the documentation for Plexus utilities is poor and
secondly but more importantly the available set of Plexus utilities do not
match up to the Ant utilties/tasks. Secondly we are talking about build
tasks, most of which are already available in Ant and are very well
documented and tested. Thirdly Groovy's AntBuilder provides a declarative
syntax for defining Ant tasks and makes the scripts much more concise and
readable. Finally Groovy provides us the power of a programming language
along with declarative Ant inclusion. These factors coupled with the fact
that we are basically migrating our existing jelly scripts that use ant
heavily and have so far sufficed for all our requirements, to Maven MOJOs
makes Groovy more attractive than Java. I am really interested to know the
views of people on Groovy vs Java for writing build tasks.
 
Also I saw that the Groovy MOJO support is in alpha release. When is it
expected to be available as a stable release? What is Maven team's overall
push and direction in promoting Groovy as the standard scripting language.
 
Thanks in advance,
Ritu
 
 

Reply via email to