Cons - Groovy

bracechumpInternet και Εφαρμογές Web

5 Φεβ 2013 (πριν από 4 χρόνια και 7 μήνες)

216 εμφανίσεις

Feedback from our users

JSR
-
241, Nov. 2004, London Meeting

2004/11
-

Guillaume Laforge


AdHoc


Ant


Business Rules


Data Munging


Embedded


Manipulation


Swing


Testing


Usages

2004/11
-

Guillaume Laforge


We're using it for ad hoc scripting: database fixes,
problem monitoring, etc.


Pretty much any kind of programmingperformance
-
limited code, but for a lot of tasks it works great.


Ad
-
Hoc scripting at the command line.


We're looking to use it to augment/replace some code
generation


scripts we have written, some of which currently are
pure Java and some of which are Perl.

AdHoc

2004/11
-

Guillaume Laforge


I'm working on an ANT replacement, some helper
classes (Dependency,Dependent, DependencyResolver,
etc) and a main() that intelligently starts up build.groovy
scripts, binding some useful variables, etc...




A possible replacement for a very large body of Ant


Ant

2004/11
-

Guillaume Laforge


We are also looking at using Groovy to implement
business rules use Groovy for writing the business logic
of web applications using the RIFE framework



for adding custom client functionality around a core
system, the VBA in a VC++ app type thing



Business
-
focused developers who use our app would use
Groovy to customize behaviors such as business rules


Business Rules

2004/11
-

Guillaume Laforge


We use groovy scripts for data preparation before "fo"
generation from Velocity templates



We use groovy for Velocity replacement template engine


Data Munging

2004/11
-

Guillaume Laforge


I am using groovy as an internal scripting language for a
web services framework, for scheduler task
implementations


Customize the functionality of the system in a Java like
scripting environment; obviating the need to continually
redeploy the web app to add new functionality


Uses Groovy inside an IRC framework, with Groovy
script for live extensions.


Use Groovy as the default scripting language for EAI
glue, or in internal data management framework


Embedded

2004/11
-

Guillaume Laforge


Use Groovy as a replacement for BeanShell for an
interactive



Scripting/data manipulation tool within our application



Mostly scriptie stuff where I need to talk to different
systems (particularly databases)


Manipulation

2004/11
-

Guillaume Laforge


Using Groovy for dynamic data binding in a Swing app



We are currently using Groovy as glue in our Swing apps



Replacing Java on relatively small GUI projects



I will most likely be using it for building swing apps
deployed via webstart, as well as scripting UI event logic
and XML navigation


Swing

2004/11
-

Guillaume Laforge


We're using groovy in our build to pre
-
populate a test
database before running unit tests, so that the unit
tests can make assumptions about what data exists.




Test Automation with ANT and Canoo Webtest.


Testing

2004/11
-

Guillaume Laforge


From the experience gathered from our users, we have
crafted a list of the pros and cons encountered when
developing with Groovy.


Pros and Cons

2004/11
-

Guillaume Laforge


Works with minimal setup



Easy to embed and setup

Pros: Ease of Use

2004/11
-

Guillaume Laforge


Possible to write some DSL languages



Ability to write our own builder (MetaProgramming)



Markup



Pros: Extensibility

2004/11
-

Guillaume Laforge


Mostly, happiness! (when developing in Groovy)



Informal java feel (syntax)



Syntax close to Ruby and Java



Pros: Familiarity

2004/11
-

Guillaume Laforge


Access to vast world of java libraries




Leverages the Java library shelf



Pros: Reuse

2004/11
-

Guillaume Laforge


Good support from the community


Pros: Support

2004/11
-

Guillaume Laforge


Clean, tight syntax for powerful work


Easy JavaBeans


Native syntax for collections, iterations, closures


Small, quick, easy, compact, expressive but still clear solutions


Optional semicolons


With lots of shortcuts for the things I do all the time.


Ease of use stuff of scripting languages


Easy to populate a database


Relatively terse syntax for short expressions


Groovy by far has the syntax edge (compared to other scripting
languages)



Pros: Syntax

2004/11
-

Guillaume Laforge


Class loading unflexibilities to load/unload scripts


Can't discard script from GroovyClassLoader


Load/run groovy scripts from other scripts without
using of GroovyShell


Not easy to reference/import other scripts


Miss "load" and "require" to import other scripts


Ruby: create/modify a new object with the ! modifier



Cons: Class Loading

2004/11
-

Guillaume Laforge


Debugging hell, bad error reporting



Not fast and responsive for fixing bugs



Debugging/profiling support



Cons: Debugging

2004/11
-

Guillaume Laforge


Documentation lacking



Documentation on unexisting features



A lot of features are not documented



Cons: Documentation

2004/11
-

Guillaume Laforge


Lack of good IDE support

(IDEA, Eclipse, NetBeans, etc.)


Cons: IDE support

2004/11
-

Guillaume Laforge


Need more public updates


Clearer decision process


Need of dictatorship (à la Matz or Guido)


The lack of a more concrete schedule and plan for a
version 1.0 release (I'm hopeful the meeting will produce
this)


Cons: Leadership and
Visibility

2004/11
-

Guillaume Laforge


Look for minimal optionals



Need to significantly reduce ambiguity and surprises



Ambiguity leads to an increased mental parsing time



Cons: Optionals

2004/11
-

Guillaume Laforge


Lacks anonymous classes



Can't access global variables



Many bugs in scoping rules



Cons: Scoping

2004/11
-

Guillaume Laforge


Concern about security when groovy code is embedded



Security issues, package sealing, sandboxing



Cons: Security

2004/11
-

Guillaume Laforge


Speed of compilation



Not as snappy as Java


Cons: Speed

2004/11
-

Guillaume Laforge


A general good feeling about the language



But we need to improve the user experience



Conclusion

2004/11
-

Guillaume Laforge