I have convinced teams to switch to just after rewriting their makefiles in a fraction of the time and size. There have been some make die hards but they gave in to the team once they saw the justfiles.
Luckily we didn’t have to write C or C++. I think the reason why that has so many build systems is because of the lack of a package manager. That entire world needs a cargo equivalent.
The one time I needed to compile a rust app, I followed the instructions on their github and it used cargo and it didn’t work. Don’t remember the issue now, but it instantly gave me the same yuck I get when forced to use pip or npm and it breaks in the same fucking way.
Had better luck compiling maven/gradle apps oh and yes, makefiles worked reliably for me so far.
But this is just a personal anecdote and I rarely have to compile anything myself.
What breaks with npm in your case? In my experience it’s been the rarest system to fail, like I can git clone something from 10 years ago, run npm i and the resulting app still builds and runs, despite a ton of announcements about deprecated libraries and update requests for vulnerability fixes.
There are already plenty of package manager options in the C++ world. Having an “official” one arguably only helps improve the onboarding experience, but overall it’s a chokepoint for the entire ecosystem. There are rarely “one size fits all” solutions to a problem, and there certainly isn’t one for a problem as complex as software builds and packaging.
Conan and vcpkg are the two big ones I’m familiar with, but some projects use CMake FetchContent (with github acting as the CDN/registry), and depending on your requirements you can also just use system package managers on Linux, maybe Homebrew or Nix/Guix, or more niche ones like Spack. I’ve seen projects packaged using self hosted Pacman registries, and that works surprisingly well.
I have convinced teams to switch to
justafter rewriting their makefiles in a fraction of the time and size. There have been some make die hards but they gave in to the team once they saw the justfiles.Luckily we didn’t have to write C or C++. I think the reason why that has so many build systems is because of the lack of a package manager. That entire world needs a
cargoequivalent.For C/C++ make is a right tool for her job, but cmake is an improvement.
I’m personally all in on nix these days for dev work
The one time I needed to compile a rust app, I followed the instructions on their github and it used cargo and it didn’t work. Don’t remember the issue now, but it instantly gave me the same yuck I get when forced to use pip or npm and it breaks in the same fucking way.
Had better luck compiling maven/gradle apps oh and yes, makefiles worked reliably for me so far.
But this is just a personal anecdote and I rarely have to compile anything myself.
What breaks with npm in your case? In my experience it’s been the rarest system to fail, like I can git clone something from 10 years ago, run
npm iand the resulting app still builds and runs, despite a ton of announcements about deprecated libraries and update requests for vulnerability fixes.We’ve been doing fine for decades, thanks though!
There are already plenty of package manager options in the C++ world. Having an “official” one arguably only helps improve the onboarding experience, but overall it’s a chokepoint for the entire ecosystem. There are rarely “one size fits all” solutions to a problem, and there certainly isn’t one for a problem as complex as software builds and packaging.
There are? Where are the package registries? Could you give examples?
Conan and vcpkg are the two big ones I’m familiar with, but some projects use CMake FetchContent (with github acting as the CDN/registry), and depending on your requirements you can also just use system package managers on Linux, maybe Homebrew or Nix/Guix, or more niche ones like Spack. I’ve seen projects packaged using self hosted Pacman registries, and that works surprisingly well.