JavaFX script function tak(x:Number, y:Number, z:Number): Number { if (y >= x) z else tak(tak(x-1, y, z), tak(y-1, z, x), tak(z-1, x, y)); } for (i in [1..1000]) { tak(24, 16, 8); } time javafx -server -cp . Tak real 0m10.724s user 0m10.105s sys 0m0.173s Groovy def tak(double x, double y, double z) { return y >= x ? z : tak(tak(x-1, y, z), tak(y-1, z, x), tak(z-1, x, y)); } int i = 0; while (i++ < 1000) { tak(24, 16, 8); } time java -Djava.ext.dirs=./groovy-1.6-RC-1/lib -server groovy.lang.GroovyShell tak.groovy real 4m36.674s user 4m29.272s sys 0m3.842s JRuby def tak x, y, z unless y < x z else tak( tak(x-1, y, z), tak(y-1, z, x), tak(z-1, x, y)) end end i = 0 while i<1000 tak(24, 16, 8) i+=1 end time ./jruby-1.1.6RC1/bin/jruby -J-server tak.rb real 4m24.735s user 4m22.203s sys 0m1.069s Summary For this benchmark, as you can see both JRuby and Groovy are around 25x slower than JavaFX script. Software Development