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…

  • 2xsaiko@discuss.tchncs.de
    link
    fedilink
    arrow-up
    35
    ·
    1 month ago

    Gradle is pretty awful actually, I’ve had to deal with it for years when I was writing Java. It’s pretty much the #1 reason I’ve stopped doing anything Java related.

    Meson is the well designed option for C family languages. It also has support for Java, Rust, Swift, and a couple other languages. C is the most well supported though I think.

    It also has a built-in dependency downloader that respects the system installed packages (and therefore distro packagers).

  • e8d79@discuss.tchncs.de
    link
    fedilink
    arrow-up
    33
    ·
    edit-2
    1 month ago

    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.
    • 0x0@programming.dev
      link
      fedilink
      arrow-up
      13
      ·
      1 month ago

      Cmake tends to be the upgrade path for sure, gradle is… hideous, i have having to use it for android.

      • e8d79@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        ·
        1 month ago

        I worked on a couple commercial C++ applications that used vcpkg. It’s not as convenient as nuget, cargo or npm but it think it is a massive improvement over manually hunting for dependencies.

  • bestboyfriendintheworld@sh.itjust.works
    link
    fedilink
    arrow-up
    11
    ·
    1 month ago

    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.

  • UnRelatedBurner@sh.itjust.works
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    1 month ago

    no please don’t. Whenever I try to install something old and I realise it’s written in java I just give up after days of trying or end up with like 4 java versions installed and different dependencies need different versions.

    I see gradle written while doing so, thus I associate it with HELL.