FTA: "Supported for end-developers means that the Fuchsia SDK contains tools and libraries that help people use the language to develop software for Fuchsia, including a language-specific backend (and supporting libraries) for FIDL. Support also implies some level of documentation, including tutorials and examples, as well as investment from developer relations."
> Go is not approved, with the following exceptions:
>>>> netstack. Migrating netstack to another language would require a significant investment. In the fullness of time, we should migrate netstack to an approved language.
> All other uses of Go in Fuchsia for production software on the target device must be migrated to an approved language.
Does that not imply that okay sure use whatever language you want, but production software (that exists in repositories?) must adhere to approved languages?
I could be misreading
> I could be misreading
To me, that reads: platform devs, i.e. people developing Fuchsia itself, must adhere to the approved language list. Which is not uncommon in projects of all sizes from small to large.
I think the wording is a bit weird because Google is expecting 3rd party device manufacturers to make modifications to the OS and expects them to adhere to the approved language list as well.
Edit: had I read the quote from a comment not far below before posting, I would not have made these assumptions. That quote does sound like applications will be language restricted.
> I could be misreading
That’s for “production software” (as opposed to tooling I’d guess) in / of Fuschia itself. They’re saying that aside from netstack & stuff that only runs on the dev machines everything that’s in Go in the Fuschia repository must be migrated ASAP to an approved langage.
For end-developers it’s the same status as eg Rust: you’ll be on your own with no support from the fuschia project.
Fuchsia, as a fundamental principle, supports "bring your own runtime" -- if you are a PIE ELF executable and can dynamically link against libzircon.so (the syscall ABI) and speak the platform's RPC protocols, you are a Fuchsia app.
The Fuchsia IDL compiler is designed to support third party backends for other languages beyond the core platform languages.
I've moved on to other things, but I'd be very surprised to learn this had changed.
Only in part; they also specifically mention whether or not they will support use of each language by end-developers. (As you say, end-developers can use whatever they want, as long as their language has a C-ABI FFI, but that's not the same as being "supported".)
“Supported”, however, is a different word than “allowed”.
As far as I can tell, this is supposed to be “the” languages that can execute on a Fuschia-powered device.