In Q1 of 2022 I ran the babashka survey again. I've done this once before (in November 2020) to see how people are using babashka and what they think could be improved. This year about 200 people responded. That is double the amount since the previous survey!
Here follows every question of the survey with a summary of the reactions.
The first two options were selected in the majority of answers. Unsurprisingly most people are using babashka as a shell-scripting replacement for bash, exactly how it was intended. Babashka tasks is catching on: almost half of babashka users are using it to replace their Makefiles.
About 50% of people used babashka both for personal projects and work. Only personal and only work was about 25% each. Some people use babashka to sneak in some Clojure at their non-Clojure jobs.
This question was free format. Some common themes:
This question was also free format. Probably the top 5 most named libraries:
The majority answer here was: none. People seem to be happy with the current selection of libraries.
It's hard to see common patterns here. A random pick:
Note that spec is available in babashka via this
library. Specter also works from source now since
:mvn/version "1.1.4". Dealing with time is done via
java.time and cljc.java-time is one of the
java.time based libraries that work in babashka.
In order of mentions:
It's great that people are using fs and process on the JVM. I didn't expect so many people to be using babashka.curl on the JVM too!
84% of the people didn't care, 12% cared and 4% had a nuanced answer.
Note that bigger binary size in babashka is correlated with a longer compilation time and more strain on CI resources. That is the primary reason I'm trying to keep it down.
The top 7:
Note that for AWS we now also have a source-compatible library: awyeah-api.
A pick of the free-formatted answers:
Lots of thank you's and compliments...
The majority of answers to this survey were not too surprising, yet a good confirmation that babashka is doing what it's supposed to be doing. In individual answers there were a few fun discoveries, like learning which big companies are using babashka.
You can read results from the previous survey here. In that survey I asked users what they thought was currently missing in babashka. You can find those answers here. I think almost all points were addressed in the meanwhile. The improvements requested in this survey feel mostly as finishing touches: documentation, error messages, nREPL improvements, so it's probably safe to say that babashka now covers the most important Clojure scripting use cases.
Hardly anyone mentioned performance as something that should be improved, although that has been an area of focus in the beginning of this year and something I will be looking into in an ongoing basis. Most if not all of that work is happening in SCI, which is also powering nbb and other JS targets.
If you are interested in the raw (anonimized) data for this survey, then send me a message.
Discuss this post here.