I know little about gradle and have only just started exploring it, so this is just a question out of curiosity.
It’s supposedly a language agnostic dependency manager and builder, yet it seems to have only found its niche in Java. C/C++ projects could definitely do with dependency resolution…
Only java developers can accept how slow gradle is.
Here are a couple of reasons:
- C and C++ projects often predate Gradle by decades they will not change their build system without a compelling reason.
- Gradle is written in Java and requires a Java Runtime.
- At least for C++, CMake has pretty much become the standard build tool.
- Dependency resolution on Linux was ‘solved’ by relying on the distribution. Today, there also exist package managers for C and C++ like vcpkg or conan and they also integrate with CMake.
Cmake tends to be the upgrade path for sure, gradle is… hideous, i have having to use it for android.
Programming languages come with their own niches, tools, culture, and history. Gradle has lots of verbosity, complexity, and so on. It’s a build system and a dependency manager in one. Other languages separate these duties.
A cultural preference for tools written in specific languages or available for specific platforms exists as well. Lots of C/C++ programmers dislike everything Java. They will cite performance and philosophy. They ask why should they install and manage JVM versions and installs for a task they can do with a make file, a shell script, and Conan/vcpkg.
Not even all Java folks use gradle. maven and ant ant are still around and I’ve seen someone write Java build tasks using rake.
As someone who used gradle then didn’t for a few years and looked back it, damn did they absolutely butcher the whole thing, not to mention now with the dual kotlin/groovy stuff the documentation is incomprehensible and achieving something that was easy as fuck in groovy like copying some files is a nightmare in kotlin.
The parallel builds seems to be almost entirely gone, de dependency management got an even weirder file format. I have no idea what they are doing