I feel as though the historic efforts of interoperability aren't reflected here and would seem to be superseded by the current form of the axiom of versatility, that suggests this is primarily done as an effort to make it possible to do everything in Rust itself.
I think that the true versatility of Rust is shown when you can use as little of it as you need to reap the benefits you are after.
The Rust project and the projects around it have invested greatly in ensuring that Rust plays nicely with other languages, with minimal developer effort, to an impressive degree:
rust-bindgen provides a decent mechanism to interoperate not only with C, but anything else that operates over the C FFI,
pyo3 makes it easier to interoperate with Python, providing a safer and more accessible option for implementing performance critical logic exposed to Python,
the influence that the Rust community has had on the implementation and adoption of WASM and WASI not only makes using Rust in seemingly any runtime easier, but also permitting Rust projects to permit extension with anything else targeting WASM, and
serde also feels worth mentioning here as another tool that greatly assists interoperability.
Rust complements code in others systems so it is interoperable. The language and tools provide clear boundaries, which can function as interfaces to other languages, and features that avoid runtime dependencies.
Rust provides benefits in a broad range of contexts, so it is versatile. You can use Rust to write low-level code, where it can precisely manage architectural and systems concerns, and at high level, where ergonomic abstractions can deal with problems in their conceptual form, and anywhere in-between.
I feel as though the historic efforts of interoperability aren't reflected here and would seem to be superseded by the current form of the axiom of versatility, that suggests this is primarily done as an effort to make it possible to do everything in Rust itself.
I think that the true versatility of Rust is shown when you can use as little of it as you need to reap the benefits you are after.
The Rust project and the projects around it have invested greatly in ensuring that Rust plays nicely with other languages, with minimal developer effort, to an impressive degree:
rust-bindgen
provides a decent mechanism to interoperate not only with C, but anything else that operates over the C FFI,pyo3
makes it easier to interoperate with Python, providing a safer and more accessible option for implementing performance critical logic exposed to Python,serde
also feels worth mentioning here as another tool that greatly assists interoperability.Rust complements code in others systems so it is interoperable. The language and tools provide clear boundaries, which can function as interfaces to other languages, and features that avoid runtime dependencies.
Rust provides benefits in a broad range of contexts, so it is versatile. You can use Rust to write low-level code, where it can precisely manage architectural and systems concerns, and at high level, where ergonomic abstractions can deal with problems in their conceptual form, and anywhere in-between.