If I remember what the state of Groovy is (around 2012). The
compiler devs focussed quite heavily on functionality not
performance. Even refused to go that direction.
It was quite bad.
Its a real shame. I liked it. Although if they had and had
unsigned types I probably wouldn't be in D!
Since Groovy 2.0 there is optional static type checking and when
using it performance is much better. When Groovy is run over the
Havlak benchmark it is only 10% behind in speed compared to Java
with static typing and only about 40% in behind when purely
dynamic as with pre-2.0 Groovy. See the bottom most paragraph in
the readme of https://github.com/oplohmann/havlak-jvm-languages
The benchmark in this article
only measures method invocation time, but it also gives some idea
that performance in Groovy is really good now.
What Scala is really good at is concurrency. You must give them
that. Akka (akka.io) and new ideas about futures and promises
really started in the Scala community. Some of that stuff also
made it into JDK8. Something like Akka for D will be a killer app
for D. It can't be done as a spare time activity, otherwise I
would already have embarked on it ;-).