This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
Yeah you're right. Why get excited over yet another scripting language for the JVM. There's Jython, JRuby, RhinoScript, Judo, Dojo, Kung-fu, and whatever. BUT!!!
There's always a "but" and sometimes it's a big one. Can you compile your JRuby down to byte code? Does your Jython plug seamlessly into Java's API? Does (insert scripting language of choice) add it's own API baggage while giving you dynamic constructs? That's where the Groovy language comes in. You compile your project right along with the Java code that compliments it drop a 1.5MB jar in your classpath and you're set to go. Everything you do in Groovy sits directly on top of the standard Java API while you get all of the goodies from Languages like Ruby, and Lisp. Closures, curry's, functional programming, Meta programming, constructs for creating DSLs and all are built in. Groovy's main strength is two-fold. It's similarity to Java lowers the barrier to entry. It's Meta Object protocol allows you to extend the language to your liking and even invent a language of your own within the language.
As far as starting of a new age, the new Age began a long time ago when people much smarter than us invented concepts like DSLs Meta programming, functional programming and the like. Groovy brings serves it all on a Java platter so that you can jump right in without buying another text book first. If all of this sounds like a bad infomercial (and it does) then just head on over to http://groovy.codehaus.org/ and look quickly through the quick start documentation.
Holla at me...<br /><a href="http://codeforfun.wordpress.com" target="_blank" rel="nofollow">http://codeforfun.wordpress.com</a>
Firstly Groovy is not the offical scripting language for the JVM. We have simply used the JSR process as a standardisation mechanism. This is a process open to others and has been used for Beanshell.
We are seeing quite a lot of interest from Java and non Java programmers to use Groovy on the JVM. People have been writing real life applications in Groovy for the last two years and many of them are live.
Of course many people see no advantage to using a language like Groovy (or Jython, Jruby,, etc.) and that's fine.
However for Java programmers who find dynamic languages attractive (i.e. they find them lots more productive) we feel that Groovy is the best solution available today.
I don't understand where the statement "Java developers show no intrest in using languages over Java." is coming from. Clearly quite a few Java developers are using languages other than Java in conjunction with the Java VM. This page should be sufficient proof. What's more, right now -with the release of Java 6- everybody seems to be talking about the scripting capabilities added via JSR-223, but BSF has been doing most of that for years, so it's not exactly new stuff. New is that it's part of the JRE itself. [ December 12, 2006: Message edited by: Ulf Dittmer ]
I don't understand where the statement "Java developers show no intrest in using languages over Java." is coming from.
Well, I have been keep tracking OnJava.com , Java.net ,IBM dW , OTN and JR scripting languages for a long time and I can hardly see any interest in OOSL. (Except for Practical Groovy column and alt.lang.jre serie at dW and an articles at java.net about Groovy and XML)
Java developers show no intrest in using languages over Java.
I've had the opposite experience. Every place I go seems to use Python/Jython for something. One company I contracted with uses The Grinder to test their Java applications. Another company I contracted with had a support infrastructure built on Zope which was simple enough to maintain they had plenty of time to devote to their main product, a massive Java publish/subscribe network. Right now I'm working with Weblogic which has a Python-scriptable tool (WLST) that comes in handy for automating tasks and managing servers. Then there's always some one-off task I have to code up and writing a script is nearly always faster and easier than writing a Java app to do the same thing. If Groovy is half as useful as I've found Python to be, I'm sure many knowledgable Java programmers will add it to their toolkit.
I'm very glad to hear about so many usages for scripting in the Java world. This aligns with my experiences.
I have seen lots of usages of shell scripting, Perl, Python, Jython, Ruby, and the like in and around Java projects. The unique proposition of Groovy is to allow doing all this useful work in a way that is comparable in simplicity and conciseness while working tightly integrated in the Java platform. With Groovy you stand on the shoulder of giants - not on their feet.
Groovy makes it much easier for the average Java programmer to enter the world of dynamic (scripting) languages. He can leverage his Java knowledge preserving his investment in it.