#fuchsia design principle: Bring Your Own Runtime. If your code can speak the protocols, it can be a first-class citizen regardless of language or runtime. Consequence: Fuchsia does not provide libc or other shared system libraries. Each package is #hermetic and has its own libc.
The system protocols are defined in #FIDL, the Fuchsia Interface Definition Language. The FIDL compiler has a backend for each language, and an IR that makes adding new languages easier. Any language can add support for Fuchsia using FIDL without needing to ask for permission.
Possibly. However, FIDL is tuned specifically for Fuchsia. For example, there are types for each Zircon object. There are other similar tools that might be more useful for other applications (e.g., gRPC, FlatBuffers, Cap'n Proto).
There's also somewhat related tooling for generating ABI definitions for C and C++ code to enforce ABI compatibility.
https://source.android.com/devices/architecture/vndk/abi-stability…
That stuff is designed in a way that it could easily be used elsewhere. It's not particularly Android specific and has simple tooling.