Disclaimer: I don't know C++ (well)/CMake(at all). I'm guessing the tooling for creating static binaries is only marginally better.
At least for rust (I'm not as familiar with Go), it brings super easy project setup and library inclusion.
E.g. for creating a project and running it:
> cargo new my-cli
> cd my-cli
> cargo run
And then all I need to do is add structopt to the cargo.toml file to bring in a command line parser with hygienic macros.
Edit: they also do static linking by default :EndEdit
‐---------------------
But what it really makes easier is not needing to worry about memory safety. C++ is good at making static binaries, even if it might be slightly more fiddly.
So it's more like the static binary is the advantage over scripted languages, and memory safety is the advantage over c++.
I would never attempt a tool in c++ now that I know Rust.
As someone who has struggled with cmake for years, the answer can be found in setting up a simple Rust project in a few minutes: it will just work out of the box. The default config is all you need, and you won't have to do back and forths to understand other projects setups (unless they're massive). You will easily import and use dependencies you need, even small edge-cases can easily be a line in your config file.
At least for rust (I'm not as familiar with Go), it brings super easy project setup and library inclusion.
E.g. for creating a project and running it:
> cargo new my-cli > cd my-cli > cargo run
And then all I need to do is add structopt to the cargo.toml file to bring in a command line parser with hygienic macros.
Edit: they also do static linking by default :EndEdit
‐---------------------
But what it really makes easier is not needing to worry about memory safety. C++ is good at making static binaries, even if it might be slightly more fiddly.
So it's more like the static binary is the advantage over scripted languages, and memory safety is the advantage over c++.
I would never attempt a tool in c++ now that I know Rust.