> using C, Python, Rust in each interop had some cost but I did it and got a lot of benefits of using existing good software
I don't dispute this, but that is still a niche case. The general case is that library software gets rewritten in each language (and if it's not worth the trouble to rewrite it, it's usually not worth the trouble to use and maintain bindings). So yes, there is a tradeoff, I'm just expressing my opinion that Go made the better tradeoff, at least for a garbage collected language (since you mentioned it, Python trades off a boatload of performance and package management simplicity in its pursuit of easy C interop).
> Yes C lacks dev ergonomics, but meson + ninja gave a very neat experience..
My point about abysmal C build/package tooling wasn't about the experience of a C developer, but the experience of someone who is downstream of C packages. As a Python developer, I don't get to choose how my C dependencies are packaged for Python (which build system and package manager they use)--I'm just at the mercy of whatever they offer, and if I'm targeting some non-mainstream Linux distro, then there's a good chance some build or runtime dependency of some upstream C project is going to fail, and now I need to grok that C project's build/linking system to sort it out. This just doesn't happen in (pure) Go because Go's build system and package manager are reproducible (no implicit dependencies).