Pokud vím, hlavní předností Rustu (oproti třeba Go) má být fakt dobrá interoperabilita s C++, tak aby je bylo možné pohodlně kombinovat v rámci jednoho softwarového balíčku / knihovny.
Podobné je to s Kotlinem a Javou - interoperabilita je tak dobrá, že vzít čistou Java knihovnu, udělat z ní kombinovanou Kotlin+Java knihovnu (v Bazelu java_library -> kt_jvm_library), a připsat novou třídu v Kotlinu, aniž by se někde jinde něco po*ralo, není těžké.
Bez tohohle "file by file adoption" by se nedalo doufat v nějaký zásadní posun k novému jazyku v tak mamutím repozitáři, jako je google3 (který máme rozdělený do mrtě balíčků, vlastněných různými týmy, a celé se to bez ustání kompiluje pořád dokola).
Neříkám, že je to postačující podmínka, ale je nutná. U Go tohle nejde, a je to znát.
Jinak takřka dokonalou interoperabilitu s C++ má Objective-C (blahé paměti). Ta má navíc zajímavou historii, došlo k tomu víceméně náhodou a z lenosti. Dodnes to je relevantní pro níže zmíněný Swift, ten si rozumí nativně jen s C, ale přes ObjC runtime namapovaný na svůj typový systém zvládne přímo i C++.