Monkey vs Groovy-Monkey vs EclipseShell

  • Venkatesh Prasad Ranganath


    I am interested in using scripting support in Eclipse.  So far, I have
    considered EclipseShell and Monkey.  Given the extent to which Monkey is
    integrated into Eclipse, I was leaning towards Monkey.  However, Monkey
    only supports JavaScript (or am I wrong?).  Anyways, I recently found
    Groovy-Monkey which seems to support numerous other scripting languages
    (although implementing such support seems simple after looking at the code
    of Groovy-Monkey).

    In short, I am at the cross roads of making a decision about Monkey or
    Groovy-Monkey.  So, any information and/or arguments to choose one over
    the other would be appreciated.  Or is there is an argument to use

    waiting for reply,

    - VPR

    • James E. Ervin

      James E. Ervin - 2006-08-22

      I have heard some good things about Eclipse Shell, but to be frank I didn't get it.  I wrote this tool because I wanted a scripting capability within Eclipse and found other tools wanting.  This tool is originally a port of Eclipse Monkey to the Groovy Scripting language, but I soon found I wanted to take it further. 

      Groovy Monkey is based on the Bean Scripting Framework and the Eclipse Jobs API. 

      BSF allows you to write the scripts in any language ( with the metadata header on top ) that correctly implements the BSF Engine.  I have found that Groovy ( 1.0 JSR 06 ), Beanshell and JRuby all seem to work rather well.  Jython and Jacl support are not up to par, but you are welcome to try them.

      The Eclipse Jobs API allows you to support concurrency within Eclipse.  The last time I saw Eclipse Monkey, all scripts ran from within the UI Thread ( bad practice by the way ) and would lock up the workbench if you screwed up.  Groovy Monkey doesn't stop you from hurting yourself, but rather makes you go out of your way to do it.  By default all scripts are run from within a Job and that means that a progress monitor is provided so that you can provide progress feedback and allow for the user to cancel the operation.  You can also have it run from within a UIJob or a WorkspaceJob too.

      There are also some help with the writing of scripts, including a "New Groovy Monkey Script" wizard and an outline view that provides some information about what is available in the script's binding.

      I hope this can help, I also wrote a set of blog entries at where I actually try and work through a couple of relatively real world examples.

      I hope this helps,
      James E. Ervin

    • Venkatesh Prasad Ranganath

      Thanks for the elaborate reply.

      I have decided to use the groovy via GroovyMonkey; however, I will post my success in using other languages if and when I do.

      BTW, I have stumbled upon a possible bug in GroovyMonkey on Eclipse 3.1.   I have created a bug report (1545076) along with a test project.

      Thank you,

      - Venkatesh Prasad Ranganath


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks