Groovy vs. Scala – We Need a Closure…

Disclosure: politically incorrect rant ahead from someone with Grid/Cloud computing perspective…

There was a recent outburst in blogs on the topic of Groovy and how it compares to Java. Although I respect the youthfull entusiasim of Groovy and Co. working on this little exercise I’m just perplexed by the “WHY?” in this whole discussion. Let me just say again: W H Y ?!?!

1. Practically no one cares about Groovy (let alone Groovy++ strap-on) beyond Grails community. So this language just as “widely accepted” as Ruby (at least for enterprise software development)

2. If you know Java it’s equally “challenging” to pick up either Groovy or Scala. Don’t let anyone insult your intelligence by claiming that Scala syntax is somehow more complex than Groovy. In both languages you will need to adapt to functional thinking – and that’s where you will have to spend a couple of weekends…

3. If you know Groovy – you already know 90% of Scala (different syntax and few extra features can be picked up in the evening)

4. Scala is designed by people who have proper academic background, experience and talent in the area of language design – Groovy has never been that way (and anyone who dares to look inside of Groovy runtime or history of changes in it will attest to that). NOTE: it did come out rather strong – but that’s how I feel about it and after some thinking I’ll leave as is. Nothing personal to anyone reading it…

5. Scala as a post-functional language is years ahead of Groovy (static typing with best-in-business type inference, highly tuned mix of imperative and functional styles, powerful and done-right generics, etc.)

6. Groovy will ALWAYS be slower than Scala or Java (latest benchmarks put even Groovy++ about 50 times slower than Java) just by its nature unless someone changes the language and rebuilds the runtime from the ground up.

7. Once we get decent integration with Eclipse, NetBeans and IDEA for Scala, the Groovy will lose its only serious advantage

8. Scala is developed and maintained in Academia (i.e. endless supply of post-docs and plenty of free time to research) – the vey rare case when it is not only appropriate but even desired. While two guys in garage working nights out until we literally pass out off exhaustion was perfectly fine for something like GridGain at the beginning – this is not enough for the general-purpose language development. And, no, VC will rarely if ever touch a language development business…

It really baffles me why would someone pick Groovy (or Groovy++) over Scala these days for non-Grails related work. Most of us will either stay with Java 7, use PHP or Python for quick’n’dirty web thingy, switch to .NET/C# or move to… Scala (all of which are sensible options in their own way). Groovy/Groovy++ just doesn’t fit anywhere in this picture in my humble opinion.

Rant’s over – enjoy!

Follow

Get every new post delivered to your Inbox.

Join 1,107 other followers