Groovy Ecosystem Usage Report (2020)
What is the most popular Groovy library, framework, or a tool? I surveyed 308 Groovy community members, and here are the results.
🥇 The most popular tool: Gradle
Gradle (an open-source build automation tool) collected the most votes - 190 out of 308 (61.7%).
🥇 The most popular library: Spock Framework
Spock Framework (a testing library for Java and Groovy applications) collected 157 votes (51%).
🥇 The most popular web framework: Grails
Grails Framework (a Groovy-based web application framework for the JVM built on top of Spring Boot) collected 116 votes (37.7%)
Using Groovy as a scripting language
My personal thoughts
I was close to guess the exact TOP 3 - I thought it is going to be Spock, Gradle, and Grails (in this particular order.) The Groovy Console result surprised me, and especially when it’s compared to the
groovysh - I definitely prefer to use a command-line tool instead of GUI-based one.
There is also a positive trend in the Jenkins Pipeline space - much more people use Groovy with pipelines instead of Job DSL plugin.
I was also surprised by the CodeNarc, Geb, and Picocli small numbers. The last two are used in the specific context, which may explain the number of votes. However, CodeNarc is a static analysis tool for Groovy, and I would love to see more people using it to improve their code quality.
There are my first thoughts after looking at the survey results. And what are yours? Let me know in the comments bellow. 👍
About the survey
The survey was launched on August 28th, and it was collecting the answers up to September 11th. It contained a single multi-choice question with predefined options to choose from, plus a text input to vote for a thing that was not mentioned on the list. It was announced using many communication channels, including the Groovy mailing list, Groovy Community Slack, Twitter, LinkedIn, Reddit, etc. The survey link was clicked 520 times, and it was converted to 308 responses (59.23% conversion rate.)
|This survey and its results do not represent the Groovy community choices as a whole. I did my best to survey as many community members as possible. However, I couldn’t reach out to every single person. Treat this report as trends radar, based on the data provided by some percentage of the active Groovy users.|
(PS: I will run a similar survey next year so that we can study changes in trends. 😉)
# | Votes | Choice ====================================================================== 1 | 190 | Gradle 2 | 163 | I use Groovy for scripting 3 | 157 | Spock 4 | 131 | I use Groovy as a general purpose language 5 | 127 | Groovy Console 6 | 116 | Grails 7 | 92 | Jenkins Pipeline 8 | 82 | Micronaut 9 | 81 | Spring Boot 10 | 76 | I use Groovy for DSLs 11 | 58 | CodeNarc 12 | 50 | Jenkins Job DSL 13 | 50 | Geb 14 | 49 | groovysh 15 | 42 | Picocli 16 | 35 | GPars 17 | 28 | Nextflow 18 | 21 | JMeter 19 | 19 | Ratpack 20 | 16 | SoapUI 21 | 14 | Jira ScriptRunner 22 | 13 | Vert.x 23 | 8 | Spreadsheet Builder 24 | 8 | REST-assured 25 | 6 | sshoogr 26 | 5 | Ersatz 27 | 4 | Spring Cloud Contracts 28 | 3 | BeakerX 29 | 3 | Gru 30 | 2 | Griffon 31 | 2 | Dru 32 | 2 | Gaelyk 33 | 2 | GPerfUtils (gprof, gbench) 34 | 1 | gradle 35 | 1 | Gradle Plugin authoring 36 | 1 | Grain 37 | 1 | Test automation with MQ and XmlUnit and Selenium 38 | 1 | Jira 39 | 1 | JBake 40 | 1 | docToolchain 41 | 1 | Groovy + JUnit 5 + Mockito is my favorite way to write tests 42 | 1 | I'm writing a content migration process for a large LMS using JSoup, apache httpcomponents, and JsonSlurper 43 | 1 | writing my own AST and transpilers (metaprogramming) 44 | 1 | Groovy used as a scripting language inside XWiki wiki pages 45 | 1 | Vaadin, Ebean 46 | 1 | groogle to work with google sheet https://groogle.gitlab.io/groogle/latest/index.html 47 | 1 | gcontracts 48 | 1 | I exclusively use Groovy for test automation 49 | 1 | At work we use Java for the production code of our low-latency trading system, but all our tests are written in Groovy 50 | 1 | Gremlin 51 | 1 | GrooCSS 52 | 1 | Portofino 53 | 1 | It's part of our own Framework 54 | 1 | Gaiden 55 | 1 | Extensions for Legacy Java APIs 56 | 1 | Katalon Studio 57 | 1 | Kiss web framework 58 | 1 | My favourite scripting language 59 | 1 | Transformation scripts in Oracle SQL Developer Data Modeler 60 | 1 | Bonita, template engine 61 | 1 | FileBot 62 | 1 | GQL (https://github.com/grooviter/gql) ASTEROID (https://github.com/grooviter/asteroid) 63 | 1 | Wide use of @CompileStatic