Key features of Groovy - three minutes of your creativity

I’ve started slowly working my way through unfinished PRs in Exercism tracks, seeing if I can get them to a mergeable state.

There’s a PR from 18 months ago adding “key features” to the config.json of the Groovy track: Key features by artamonovkirill · Pull Request #279 · exercism/groovy · GitHub

The PR stalled because it was essentially copy/pasting the key features from Apache’s groovy website, which adds complications due to licensing.

I’d like to finish this PR by rephrasing all the points so they’re not taken directly from the Apache site. We also don’t need to follow the 6 points on the site, we can say whatever we want (which I think will make it easier).

The existing features are lifted from: https://groovy-lang.org/

My suggestions for replacements so far are:

  • Readable and concise; easy to learn if coming from Java
  • Interoperable with Java; integrates seamlessly with the Java ecosystem
  • Powerfully expressive; write domain-specific languages for readable business rules
  • Safe and fast; Powerful language features including meta-programming, type inference and static compilation

I’m not married to any of these, I just want to get to “good enough” so we can merge the PR (I will push to the PR creator’s branch and merge).

Any other suggestions? We need to get to 6. It doesn’t have to be perfect.

How about:

  • Versatile; Ideal for web applications, scripting, concurrency/parallelism, testing, automation and code analysis

Maybe also mention multi-paradigm? It lists features of functional programming but I assume it supports OOP as well? IDK enough about Groovy to confirm this

I like both of those suggestions. I also don’t know enough about Groovy to confirm the multi-paradigm thing, though.

I just checked the wiki article, and indeed it’s considered object-oriented:

Although Groovy is mostly an object-oriented language, it also offers functional programming features.

It’s also compiled, and both statically and dynamically typed.

Awesome. I think that means we’re good to go. I’ll take a stab at finishing the PR tomorrow.

1 Like

Ok, @porkostomus - what do you think? Key features by artamonovkirill · Pull Request #279 · exercism/groovy · GitHub

Lovely Groovy! Seems great to me.