Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

There seem to be priorities that supersede making rust suitable for all code that aren't reflected #14

Open
xurtis opened this issue Dec 25, 2023 · 0 comments

Comments

@xurtis
Copy link

xurtis commented Dec 25, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant