HomeAboutArchivesTools & ResourcesSupport me
Hi! 👋 I'm Szymon

I help you become a better software developer.

  • 1.15kFollowers
  • 2.36kSubscribers
  • 110Followers
  • 30.2kReputation

Latest posts from the Groovy Cookbook

Groovy Ecosystem Usage Report (2020)
How to merge two maps in Groovy?
Groovy dynamic Maps, generic type erasure, and raw types - an...
Groovy 3 @NullCheck annotation - less code and less NPE
Groovy 3 String GDK improvements - takeRight, takeBetween, an...
Three Groovy String methods that will make your life Groovier!
Quicksort in Groovy - can it be as fast as implemented in Java?
More

Popular categories

  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2

Don't miss anything - join my newsletter

Additional materials and updates for subscribers. No spam guaranteed.
Unsubscribe at any time.

Did you like this article?

Spread the !
  • ☕️
  1. e.printstacktrace.blog
  2. Groovy Cookbook

Groovy Ecosystem Usage Report (2020)

  • September 13, 2020
  • 4 min. read
  • 0 Comments

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

  • 163 respondents (52.9%) mentioned that they use Groovy as a scripting language.

  • 131 respondents (42.5%) mentioned that they use Groovy as a general-purpose language.

  • 76 respondents (24.7%) mentioned that they use Groovy for building fluent DSLs.

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.

Also, Micronaut and Spring Boot are head-to-head when it comes to the number of users, but it’s hard to deduct anything from those numbers.

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.)

  • The survey’s chart summary (Google Form)

  • The survey’s raw results (Google Sheet)

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. 😉)

Listing 1. Survey results sorted by the number of votes
#  | 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
  • grails
  • groovy
  • ratpack
  • gradle
  • micronaut
  • spock-framework
  • codenarc
  • geb
  • picocli
  • spring-boot

Jenkins Pipeline Cookbook

Jenkins Declarative Pipeline with the dynamic agent - how to configure it?

  • September 27, 2020
  • 4 min. read
  • 0 Comments

In some cases, you would like to use Jenkins declarative pipeline with the dynamic agent. For instance, you want to provide a list of available agent nodes as a parameter for the pipeline job. In this blog post, I will explain how you can configure such a behavior in just a few steps.

Groovy Cookbook

How to merge two maps in Groovy?

  • July 17, 2020
  • 4 min. read
  • 0 Comments

One of the most popular map-related operation in any programming language is merging two (or mor...

Micronaut Cookbook

Building stackoverflow-cli with Java 11, Micronaut, Picocli, and GraalVM

  • July 8, 2020
  • 4 min. read
  • 0 Comments

In this blog post, I show you how to build stackoverflow-cli - a command-line application that a...

Groovy Cookbook

Three Groovy String methods that will make your life Groovier!

  • December 18, 2019
  • 4 min. read
  • 0 Comments

Groovy String API offers many useful methods to make working with strings much more pleasant. To...

Any thoughts or ideas?

Let's talk in the comment's section 💬

Want to put a code sample in the comment? Read the Syntax highlighting guide for more information.
Empty
Latest blog posts
  • Merging JSON files recursively in the command-line
  • Jenkins Declarative Pipeline with the dynamic agent - how to configure it?
  • Groovy Ecosystem Usage Report (2020)
  • How to convert JSON to CSV from the command-line?
  • 5 Common Jenkins Pipeline Mistakes
  • How to merge two maps in Groovy?
  • Building stackoverflow-cli with Java 11, Micronaut, Picocli, and GraalVM
  • How to catch curl response in Jenkins Pipeline?
  • Atomic Habits - book review
  • Parsing JSON in command-line with jq: basic filters and functions (part 1)
Trending videos
Jenkins Pipeline Environment Variables explained | #jenkinspipeline

In today's video, I show you how you can work effectively with environment variables in the Jenkins pipeline as a code. You w...

Using GraalVM native-image with a Groovy script - from 2.1s to 0.013s startup time 🚀

GraalVM native-image compiler uses ahead-of-time compilation to produce a highly optimized standalone executable file that ca...

Useful links
  • Start here
  • About
  • Archives
  • Resources
  • Privacy Policy
  • Merchandise
  • My Kit
  • RSS
  • Support the blog
Popular categories
  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2
Popular tags
affiliate async benchmark blogging book career cicd continuous-integration curl devops docker git github graalvm gradle grails groovy haskell hexo java java-8 jenkins jenkins-pipeline jenkinsfile jmh jq json junit learning maven metaprogramming micronaut native-image non-blocking progress ratpack reactive-programming reading recursion review rxjava sdkman session split spock stackoverflow string tail-call tail-recursion unit-test
  • Designed by @wololock
  • Created with Hexo
  • Hosted on GitHub
  • Deployed with Circle CI
  • License CC BY-NC-SA 4.0