Please create an account to participate in the Slashdot moderation system


Forgot your password?

Your Thoughts on the Groovy Scripting Language? 128

lelitsch asks: "Does anyone have first hand experience with Groovy? I am just coming off implementing a Plone-based intranet CMS and got hooked on scripting languages and Python all over again. Since most of my projects in the near future are going to be in Java or have large Java components, I was wondering if it's time to trade Jython--which seems to be falling further behind the Python release cycle--for something else. Groovy sounds like a fun thing to look at, but it seems a bit new and thin. Also, what are other languages (JRuby and Rhino, for example) you have used to script in Java?"
This discussion has been archived. No new comments can be posted.

Your Thoughts on the Groovy Scripting Language?

Comments Filter:
  • Jython and CPython (Score:5, Insightful)

    by CRCulver ( 715279 ) <> on Tuesday April 18, 2006 @10:10PM (#15154438) Homepage

    I was wondering if it's time to trade Jython--which seems to be falling further behind the Python release cycle...

    Who cares if Jython is a little behind CPython if it already has all the features you need at this point? When I do work with CPython, I work from a relatively old edition of O'Reilly's Python in a Nutshell [] as reference, and find that the language at version 2.0 already does everything I need it to. While features added at 2.2 and 2.4 are undoubtedly useful for certain audiences, the language itself was complete for most purposes some time ago, and Jython should serve most people fine.

    • Fyi, I have also used Jpype [] with success, which allows bidirectional operation between Java and CPython.
      • How would you rate jpype in terms of how serious and effort and how active in development and how far along?

        The sense I get is that there is a world of people reconciled to Java, and a world of people who have issues with it and want something else -- see RMS recent and recurring remarks about how Java hurts FOSS everywhere, everytime (or is it that other dude who has issues with Java numeric processing?).

        I don't have to get in on the pissing context of t'is, t'ain't regarding whether to go with the Jav

        • >> How would you rate jpype in terms of how serious and effort and how active in development and how far along?

          Not that many people need to interface Java with CPython. It's sufficiently functional for those who need it.

          I just don't quite get what your main point of the post is.

          >> see RMS recent and recurring remarks about how Java hurts FOSS everywhere, everytime (or is it that other dude who has issues with Java numeric processing?).

          Sure. Soon as you post a link. I don't follow every remark RM
          • Here's the deal. I am coming from a Windows world and have developed 2-D graphics widgets to display data for a specific problem domain. I have ActiveX versions of those widgets, and the folks most interested in using my graphics widgets are hardcore Matlab people.

            Matlab is actually pretty good about hosting ActiveX widgets if you observe some not-insurmountable restrictions. If I go about supplying ActiveX widgets to people happy to use Matlab under Windows, life is good, but for long term, this is do

    • by bwt ( 68845 ) on Wednesday April 19, 2006 @10:46AM (#15157035) Homepage
      Groovy offers significant advantages over jython and jruby because it was designed specifically to run in the JVM. In particular: a) groovy's class library is the java class library -- you do not subject development teams to two competing sets of class libraries, b) groovy compiles to bytecode which means its interoperability with java is seamless c) groovy can and does actually add syntax and functionality to existing java classes via the GDK.

      The problem with groovy is that it is young. It is just starting into the release candidate phase. Some people have written articles bashing groovy for missing expected features like good parsing error feedback. These articles are unfair since they are evaluating a product that is unfinished. I do not recommend groovy for any production purpose yet, it's simply not ready.
      • Actually I saw *NO* advantages with Groovy other than a more familiar syntax for Java programmers.

        None of those limitations you state are real.

        1.) Jython compiles to Java byte code just like Groovy (jythonc is the compiler included with Jython).
        2.) Jython supplies it's own class library based on CPython that can be used from Java (after you compile to byte code since they are written in Python).

        Jython may lag behind CPython but it is great port of a battle tested language and I doubt it lacks any features c
  • by Anonymous Coward
    Seriously... it runs on top of Java.
  • Ruby (Score:2, Informative)

    by Anml4ixoye ( 264762 )
    I also have been enjoying scripting languages, mostly Ruby. JRuby is still in active development, contrary to belief, and they have versions of IRB running with it.

    I'm giving a presentation on using Ruby for scriptable .NET apps at an upcoming Code Camp in St. Louis.

    I haven't played much with Groovy, but I like the idea of Ruby in that I can write scripts that will run standalone, in .NET, or in Java (not that Ruby is the only one that can do that)
  • Bean Shell Script (Score:5, Informative)

    by Elias Ross ( 1260 ) on Tuesday April 18, 2006 @10:14PM (#15154457) Homepage
    From what I've seen, Groovy's a half-baked programming language and unfinished product. See this [] criticism for a start.

    If you want to do embedded scripting in Java, I suggest Bean Shell [] instead. As a library, Bean Shell is about 280K, Groovy is about 1.7M. And Bean Shell has been around for a lot longer.

    I'd like to see Sun add closures and better support for lists/maps in Java itself (e.g. a map function). I'm hoping that pressure from Ruby will make the language grow. C# already made them change their mind about Generics.
    • Come on, there was a beta version of Generics floating around (that worked in 1.4) before C# was even out. The guys adding Generics wanted to add it much sooner (even in 1.3 I think) but there was too much contention in the community about how best to add it.

      Java was a little slower actually getting it in, but that's because they had a lot of legacy code to consider and how to make generics that would be useful even with older libraries. In no way was Java actually pressured to include Generics just becas
    • Re:Bean Shell Script (Score:5, Informative)

      by Will Sargent ( 2751 ) on Wednesday April 19, 2006 @03:29AM (#15155359) Homepage
      Also see Mike Spille's [] criticism.
    • I don't know Ruby, so I will use perl's map function as an example.

      In Perl:

            map { $_ * 2 } @arr;

      In Java:

            for( Integer key : arr ) { key *=2; }

      Now exactly, what would be the benefit of having a map function in Java, aside from obfuscating things? Everything in Java is already a pointer so operations inside your for() loop are already altering the objects in the array or collection.

      • by Anonymous Coward

        you wrote:
        > Perl: map { $_ * 2 } @arr;
        > Java: for( Integer key : arr ) { key *=2; }

        This is clearly not what 'map' is intended for.
        map works entirely in 'block context', it
        takes a list (array) as a whole, does something
        an returns another list (array). You wouldn't
        modify the original array in a map block.

        This is what you might 'map' use for:

        @words = ('here', 'we', 'have', 'some', 'words');
        @indices = (1, 2, 3, 4, 5);

        print join '_', map { $words[ $_-1 ] } reverse @indices;


      • by Anonymous Coward

        In Perl:

        map { $_ * 2 } @arr;

        In Java:

        for( Integer key : arr ) { key *=2; }

        That Java code doesn't do anything. The variable named 'key' starts by holding a reference to an Integer object; then you (implicitly) call Integer.intValue() and multiply the result by 2; and then call Integer.valueOf(that) to get a reference to a new Integer object; and that object reference is stored back in the variable 'key', replacing 'key''s original object reference.

        Variables in Java do store references (pointers) to

      • for( Integer key : arr ) { key *=2; }

        I beliefe you mean something like this:

        for (int i = 0; i < arr.length; i++) {
        arr[i] *= 2;

        I would be surprised if your code example works (as intended) as it has to unbox the Integer, then multiply it with 2, and then descide if the array was made from ints or Integers and again descide if it boxes or unboxes them again. Oki, I fire up the compiler and check it: it does not work neither w
      • Congratulations on completely missing the point of map.

        Your perl example didn't modify @arr; in fact it did nothing at all. Try something like:

        @arr2 = map { $_ * 2 } @arr;
        Where map really starts to shine in applications like the Schwartzian Transform [].
    • I'd also recommend bean shell over groovy. I went through this a year ago trying to add some scripting capability to a graphics library. What I like about groovy was that you could derive from an abstract class while for beanshell you can only derive from an interface and then need to add an invoke() method if you don't handle all the functions in the interface. Also there was a little problem with the fact that groovy did not work at all with jogl, it would give a stack overflow error what with all the ref
    • From what I've seen, Groovy's a half-baked programming language and unfinished product. See this criticism for a start.

      Groovy does not claim to be a finished product. Does anyone suggest otherwise? Why do so many people need to make long winded disections of exactly how it is unfinished? This critique provides a set of likes and dislikes. Unfortuantely, the section of dislikes is an example of the kind of unhelpful impatience that many people seem to be hurling at groovy now. Every single one of the critici
      • Groovy does not claim to be a finished product. Does anyone suggest otherwise? Why do so many people need to make long winded disections of exactly how it is unfinished?
        Because the product has been around long enough to be a lot less unfinished.

        • Because the product has been around long enough to be a lot less unfinished.

          What are you basing that on? You own opinion of how long it "should" take to create a new language? Please provide your evidence/reasoning to justify this. I recall using mozilla a couple years in and it sucked pretty bad. Now firefox is awesome. I recall the same chorus of "why are you taking so long, why do you have so many bugs?". In fact, I think that kind of impatience only happens to projects that will be great. It's only if p

    • C# already made them change their mind about Generics.

      C# has generics since C# 2.0 (which is officially released since 3 monthes)
      Java has generics since Java 1.5 (no called Java 5) whichis officially released since 16 monthes (or something).
      Inofficially Java has generic extensions since 1.4 (as an add on to teh compiler) since 3 years, or more.

      When in C# 1.0 the talks about gnerics and how they will work started, Java had generics some days alter. The very first generics for Java wehe from the year
    • first about the criticism: you really shouldn't use a page that covers Groovy from 1 year ago. I dion't know about Beanshell, but Groovy changed much in this time. about the size: that's true, this is work that needs to be done. But is Beanshell able to implement interfaces, subclass normal and abstract classes and give them back to Java as normal classes with methods that can be called in the Java way? I don't think so. I just want to say, that the big size comes through used libraries, if you remove them

      • But is Beanshell able to implement interfaces, subclass normal and abstract classes and give them back to Java as normal classes with methods that can be called in the Java way? I don't think so.

        Yes, it is!

    • Yea sure, recommending beanshell over groovy? Is this a joke? Groovy is not perfect, it is in its infancy yet, but it already beats Beanshell by miles and the language and community is very active.
  • Why? (Score:5, Insightful)

    by zaguar ( 881743 ) on Tuesday April 18, 2006 @10:21PM (#15154482)
    I think you always need a reason before you try something new and unproven. If it is an enterprise app, why? Is there a feature that Python et al. does not do? If you have no experience with it, and no good reason to switch - Why bother?
  • I wanted to use Drools and Groovy a while back to set up the variable pricing for a tollway. But who on earth is going to put that kind of system in the hands of technology named Drools and Groovy? No one wants to sound like an idiot going to their boss to suggest using anything with those names. Digital started off as Digital Intergalatic Research but quickly realized that suits don't use products that they feel stupid saying. A pun here or there is ok but there is a limit and I think Groovy, no matter
    • by Anonymous Coward on Wednesday April 19, 2006 @12:06AM (#15154850)
      I pronoune it D-rulez for that very reason. Then I throw up some gang signs.
    • I agree, the whimsical names can be a problem for some. For this reason, perhaps it should become standard practice to have some "suit"-able nicknames. Like Groovy might be referred to as Gr or GrV. If there is a suitable nickname in common usage, then upper management types won't come up empty if they Google it to get additional information (a usually unlikely event). This would be like when Kentucky Fried Chicken changed its name to KFC in order to sound hip and cool.
    • fact clarification (Score:1, Informative)

      by Anonymous Coward
      Intergalactic Digital Research (not DIR) was the original name of Digital Research (who sold CP/M and DR DOS) not Digital Equipment Corporation (selling the scrummy VAX minicomputers)
    • The rule we use around the shop is what my boss calls the Front Porch Test, which really comes from the pet world. It goes something like this: When naming a pet, imagine yourself standing on your front porch calling loudly for your pet (presumably a dog, as cats come around when they want ;). If you would feel stupid if your neighbor were to hear you yelling the proposed name, then don't pick that name. We apply the same logic to application/system names. Works pretty well for us.

      There are exceptions,
  • Nothing beats Lua (Score:5, Informative)

    by Cthefuture ( 665326 ) on Tuesday April 18, 2006 @10:32PM (#15154524)
    for lightness and performance. At least as far as scripting languages go. I can't say I'm a fan of Java but if you insist:

    There is Java/Lua integration in the form of JLua [] and LuaJava []. Possibly other tools as well.
    • Re:Nothing beats Lua (Score:4, Informative)

      by Johnso ( 520335 ) on Tuesday April 18, 2006 @10:58PM (#15154614)
      Seconded. Lua is the nicest scripting language I've worked with. It embeds beautifully in both Java and .Net. [] is your friend.

      • The one downside to Lua is that it doesn't have real regular expressions. Of course that only matters for some applications.

        • They are close. I suppose you could write a patch to make them pre compliant.
          • It depends on what you consider "close". If you list the notation that Lua has, it appears to have most of the constructs that true regular expression packages have. However, it lacks alternation and closure, which are two of the three defining properties of regular expressions. It even appears to have these, but if you look carefully, it turns out that it has them only for singletons, not for arbitrary subexpressions.

            I don't doubt that Lua could easily include a real regular expression package, but it

        • The one downside to Lua is that it doesn't have real regular expressions. Of course that only matters for some applications.

          Hm, AFAIK lua has a VERY GOD expresion mathcing system. the WoW client is scripte with Lua and all string matching there are more or less "one liners", not true regexps it seems, but very easy to sue, nevertheless (I did never dig ito it, can only tell from sources I modifeid).

    • Re:Nothing beats Lua (Score:4, Interesting)

      by david.given ( 6740 ) <dg.cowlark@com> on Wednesday April 19, 2006 @05:50AM (#15155684) Homepage Journal
      for lightness and performance. At least as far as scripting languages go.


      I never use anything else any more --- it's small (compiling into an 200kB binary with no dependencies on my platform), it's fast (faster than Python!), it's simple (you can easily understand the entire language), it's elegant (closures, coroutines, a superb callout interface...), and it's flexible (there's enough functionality under the surface that you can, e.g., rewrite the OO system to better suit your needs). It's also BSD licensed, which means that there are no legal hurdles to using it in your project; if you play games, you've probably already used Lua without realising it.

      I will admit to not being overly enamoured with its syntax --- it uses Pascalish if...then...end style rather than C's if () {} style --- but I can easily live with that.

      Testimonial: I wrote a gaim plugin not long ago for the Citadel BBS. It was easier to bolt the Lua engine onto gaim and write the logic in gaim rather than try and figure out how to do it in gaim. Lua's coroutines support allowed me to turn gaim's callback-based API into a callout-based structure, which in turn allowed me to invert all my nasty complex state machines, which made the whole thing an order of magnitude less complex. Good stuff.

  • by PeelBoy ( 34769 )
    it's groovy?
  • by swdunlop ( 103066 ) <swdunlop&gmail,com> on Wednesday April 19, 2006 @12:00AM (#15154822) Homepage
    There is JScheme [], and Kawa. []

  • other than ocaml and ruby are totally insane. I mean, I can code in java or c just fine, but it makes me want to pull my hair out, and all decent normal people must feel the same way.
    • I can't think of any reason people would choose C [] or Java [] over Ruby.

      Even other scripting languages like Perl, [] Lua, [] or Python [] would clearly be foolish choices as well.

      Seriously, Ruby's a great, well thought-out language, but if you listened to the hype you'd think that there couldn't possibly be anything better for any task at all. The fanboyism that's grown up around the language is starting to become really irritating.
      • I can't tell if you're serious or not. I love Ruby and all and have been using it since early 1.6, but C definitely has its uses. You'll generally get nowhere near C's speed with Ruby, though you can embed it in your ruby app, which is quite handy if you have a small section that needs to be really fast. Either way, you'll end up using C. Execution speed and memory footprint are C's primary advantage, and sometimes they're necessary.
        • That was more or less my point. If you look at the links I provided in my post, they show Ruby being absolutely thrashed as far as performance goes. I've seen it suggested that the 2.0 VM should be much, much faster, which is swell, but for the here and now, the language tends to be slow.

          Once again, I've got nothing against Ruby as a language, the passing experience I've had with it showed it to be a fairly elegant, easy-to-use language. That doesn't make it the all-powerful duct tape of the universe that s
      • I can't think of any reason people would choose C or Java over Ruby.

        I can.

        Mind you, I'm do a lot of Ruby coding, and I love the language. However:

        1. It is not fast. The speed difference shows up in non-trivial applications, or when processing large amounts of data.
        2. It has no support for compile-time type checking. It doesn't have to be strongly typed, but for non-trivial applications, type checking is a big help.
        3. It is interpreted, and so has a loose binding to runtime dependencies. This is a hug
        • Read my post again, and, specifically, look at the links. They show Ruby being trashed in the performance deparment, though a lot of Ruby appologists will tell you that those benchmarks somehow "aren't really applicable to Ruby." Basically, I pretty much agree with you on all fronts. :-)

            It's a good language, but it certainly has its weaknesses, not the least of which are performance or the lack of a good UI toolkit.
          • Basically, I pretty much agree with you on all fronts. :-)

            My choice of word emphasis was misleading. I wasn't implying that you though Ruby was fast; I was emphasizing that Ruby isn't fast. It looked, in my post, like I was contradicting you, when I wasn't. Sorry. :-)

            It's a good language, but it certainly has its weaknesses, not the least of which are performance or the lack of a good UI toolkit.

            I like the Qt bindings. They're pretty easy to use, and it provides a look-and-feel that integrates we

  • by Anonymous Coward
    I've used Java a long time, and when I got tired of the hoopla about how scripting languages are so much better than strongly typed languages, I thought Groovy would be a good choice, since "Groovy is an agile dynamic language for the Java Platform with many features that inspired languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax." So, I set out to develop a small (internal) project, but after a couple weeks I got tired of the clunky syntax (not to
  • Simply put, Java is a language to write programs and scripts connect programs.

    If I want to script from a Java program, I call ascript using Runtime.getRuntime().exec(cmd). The de-facto scripting languages are Bourne shell or Perl. Most scripters can read/maintain these. Only very reluctantly I will write scripts in any other language than these. As a very strict rule, anything I cannot do in Bourne, I do in Perl.

    What makes Java very unsuitable for scripting is the absence of a Posix package. Setting own
    • Issue here is that "scripting" is used very liberally and is misleading.

      Here, it is used to label every language that has anything that looks like dynamic typing, which means that Python or Ruby get labelled as "Scripting Language" while they're much closer to general purpose programming languages that allow rapid application developments and have script-type glueability.

      While Python or Ruby can be used to (and often are) glue several components, they do shine on larger applications, they're not limited t

      • I am not quite sold on the idea of doing everything in a scripting/dynamic language. Try doing real time graphics animations without some supporting primitives (written in extension modules) in one of those languages. On the other hand, Matlab is really popular among engineers and engineering students, and Matlab is pretty much a proprietary scripting language. But Matlab can host ActiveX controls (restricted to Windows) and more recently Java Swing components (platform neutral), which can display themse
  • I use Sleep [], a perl-like scripting language for java which is extremely easy (and fun) to embed and extend.
  • Hecl (Score:3, Informative)

    by DavidNWelton ( 142216 ) on Wednesday April 19, 2006 @02:09AM (#15155166) Homepage
    Hecl: []

    it is perhaps less general-purpose than the poster might want, but I have different design considerations in mind:

    Small, flexible, very dynamic, and concise - in other words, I want it to be a complement to Java, rather than simply a scriptable Java, ala Beanshell. This means that perhaps you wouldn't want to write the entire app in Hecl, but on the other hand, as a language to write quick extensions with, perhaps it's a bit faster/easier to work with.

    The most interesting feature at this point is that Hecl is small enough to run on Java-enabled cell phones, even pretty basic ones like my Nokia 3100, which only accepts Java stuff - no symbian. This means that you can code apps with no recompiling, and also make them very dynamic (you could make an app that downloads code, stores it and runs it as needs be).

    Also, for the folks who like this stuff, Hecl is still young, so there's lots of room to fiddle with the language itself, and learn about how a scripting language is built [].

    Astute observers will note that Hecl is similar to Jacl, but like the poster complaining about Jython getting a little bit out of date... it always seemed like a bit of a losing proposition to me to do a copy of a language in Java, because you miss out, if nothing else, on a *lot* of libraries, and the JRuby/Python/Tcl implementations have always seemed to be playing catch-up.
  • by JPyObjC Dude ( 772176 ) on Wednesday April 19, 2006 @02:42AM (#15155230)
    I have looked at Groovy but it does not seem stable enough to use in enterprise apps. However GNUStep for server side development is very solid platform. Objective-C, the language of GNU Step, is very good at talking with Ruby and Python.

    My money is that there will be alot of attention passed to GNUStep in the near future as a condender on server side and even client x-platform side app development.

    My Ideal web/app server is Free BSD + GNUStep + Ruby and/or Python.

  • by Anonymous Coward
    There is a really nice Scheme interpreter on the JVM called SISC: []

    IMNSHO Scheme is so much nicer than Python et al that there's not even a decision to be made here as far as dynamic languages on the JVM.

    There's also Scala, which is another statically typed language on the JVM. It is SORT of like Java, and can use Java classes natively, but is about 20 times more pleasant to use than Java (if you're into higher-order functions and pattern matching and that kind of thing... but then
    • Scheme is an important language. But it has never been widely used and never will be. Why? No state variables. That is, you can never assign a new value to an existing variable, you can only create new variables.

      Of course, that's by design, and there are good reasons to write programs that way. There are all kinds of errors you avoid by not having state variables, especially in concurrent programming. But to most programmers the concept is profoundly counterintuitive.

  • I am wondering if Groovy is not dead. For example see this: []

    This bug is pretty serious and it was filed 4 months ago. No reaction so far.
  • by arevos ( 659374 )
    Nice [] is another JVM-based language that could do with a mention. It puts more emphasis on programming correctness than Groovy, including features such as pre-conditions and post-conditions and safety from NullPointerExceptions. According to the Computer Language shootout, it compares favourably to Java [] in terms of speed and efficiency, whilst Groovy [] somehow manages to be several hundred times slower in places.
    • Scala [] is a language that targets the JVM and nicely fuses the object-oriented and functional programming paradigms. It is statically typed, has closures, a powerful collections library, integrates perfectly with Java (all Java classes can be imported 'as-is' in your program), pattern matching, and much more. See also the discussion on Lambda the Ultimate [].
      • I believe Scala has been mentioned in an earlier thread, which is why I didn't draw attention to it in my post. Scala has a lot of interesting features that Nice doesn't have, but Nice still some advantages to it's name.

        Nice is a little faster, more lightweight, and deviates less from Java than Scala, making it a hell of a lot easier to get to grips with. Like Scala, Nice supports closures, is statically typed, and integrates perfectly with Java (as do most JVM-based languages). It's been a while since I to
        • Yeah, now I see it was mentioned before, I didn't see that when I posted..

          Unfortunately, I didn't use Nice so far, so I can't comment on speed. However, I can't say Scala code was too slow, except maybe for the compiler :-). Although Scala has no 'nullable' types as Nice, they can be emulated using the Option class (heavily used in the library). For the latter point, indeed, Scala can not inject methods into existing classes, but up to a point, they can be achieved using views [].

          An interesting comparison

          • Scala seems more actively developed than Nice, which is inching its way to 1.0 extremely slowly. Scala also seems to support more features, and appears quite a bit more complex (which can be a good thing). The Haskell of JVM-based languages, as it were ;)

            Sometime I really have to get around to writing some code in Scala, but currently I'm finding my attention diverted by dynamically typed language. Alas, my spare time to investigate new computer languages is quite reduced these days.

            As for speed, I should c
  • We use judoscript [] at work. It lets us call java classes from a scripting language.
  • At first, it seemed perfect for an enterprise-level project that we were doing. We coded a small main() in Java and then continued to code up the app in Groovy.

    After a few months we were at abt. 85% done and then the shit hit the fan. I walked into the development room and then I heard this strange computer voice saying:

    "Who the fuck are you?"
    And I said, "I'm Cerberusss, and who the fuck are YOU?"
    Computer: "I'll tell you who the fuck I am. I'm GroOOOOovy! Punch the green button!!"

    At that point, I wa

  • I wouldn't get too caught up in learning every dinky scripting language out there.. if you want to invest time learning a new language learn a primary language.. maybe a cool one like Haskel or Ocaml.

    The ultimate "scripting" language is of course.. bash... or zsh. As long as you don't need to do too much math, you can do fairly complicated things in bash and do it *fast* by virtue of the fact that everything you do just launches a native binary, usually written in c, that's specialized for performing whatev
  • Indent (Score:3, Funny)

    by Vexorian ( 959249 ) on Wednesday April 19, 2006 @09:10AM (#15156237)
    At least it uses brackets instead of depending on indentation .
  • o-compelling-reason-to-choose-groovy-over-jython.. html []
    I just saw this yesterday. Guillaume Laforge the project manager for Groovy
    said if you already know python stick with jython if you don't have a reason to change.
  • Rhino / ecmascript. (Score:2, Informative)

    by gedhrel ( 241953 )
    I've used the rhino implementation of javascript as the basis for a scripting engine in a number of projects now. Javascript is lightweight, supports many useful idioms, and with rhino, integrates well with existing apps. Exposing your APIs to a scripting layer is pretty simple.

    What particularly attracted me to rhino (apart from being a bit of a js nut) was the security model. That is to say, it has one, and it's pretty well worked out. It's typically nontrivial to add sandboxed scripting support to an appl
  • If you do Java, Groovy and BeanShell (or DynamicJava) are the two scripting languages of your choice.

    Main reason: the syntax and the class library of both scriptiing languages is: Java. Further more both languages allow you to type your variables (but as in most scripting languages types are optional, while Jython is always typeless --- and besides the wiered syntax of python, the main reason I don't use it: its variables are dynamic typed)

    Groovy has disadvantages however. When groovy was "young" it was a v
  • Jacl is a fantastic scripting language for Java: html []

    I also enjoy just using Javascript for this kind of thing. See the Rhino project: []
  • For something different, you'll find SISC [] brings actual new expressability to the Java platform, rather than just scripting the same old stuff. This lets you do radically different things, as demonstrated by SISCweb [], which allows you to write web applications without dealing with the stateless, page-centric nature of HTTP.

    Plus, you'll learn Scheme, which will make you a better programmer.

  • I have been using it on a project for 9 months now it has been great to use. I haven't used Jython but I it's the only scripting language I've seen besides Rexx that defaults to using BigDecimal for numbers. Contrary to what many people write, it's not dead. My experience is that bugs get fixed relatively quickly. The project is definately moving closer to a 1.0 release. Most of the bugs that I've seen have been corner cases that don't affect 99% of what we do. Just my experience.
  • by danpsmith ( 922127 ) on Wednesday April 19, 2006 @04:24PM (#15160205)
    A language doesn't have to be updated every 20 seconds to be good. If you started off working in JPython, I don't understand why you would switch it out for a less supported, and less developed language. Python has been kicking around for a while, enough time that they got most of the major kinks out long ago, so I don't think "falling behind in the development cycle" is as crucial as you might think it is. Why not stay with what works unless you specifically REQUIRE the new version's functionality? People are too quick to be trendy with languages...
  • If you are interested in JVM languages, you might as well look at Pnuts []. It runs roughly as fast as Lua.

Executive ability is deciding quickly and getting somebody else to do the work. -- John G. Pollard