Feature matrix for languages
alfonsogarciacaro opened this issue ยท 5 comments
@dbrattli @ncave @alexswan10k @MangelMaxime
I think we'll need to replace/add a Feature/Language matrix to this page so users know what it's supported and what not in each language: https://fable.io/docs/dotnet/compatibility.html
I'm thinking of something similar to the picture below, with language targets replacing the browser and without version numbers:
The current doc also lists the type equivalence in generated code. Maybe we can keep this when there's a corresponding native type and skip it when it's a custom type from fable-library. If there are some particularities we can include them as footnotes below as it is in the "Caveats" section.
If it looks good to you, I can try creating the table and then I will ask you to fill it for Rust and Python ๐
without version numbers
Yes, without version number, but we need some color coding (or special symbols) describing the level of support (or readiness) for each feature.
Seems like a good representation to me.
To represents the color coding, we can use Icons + Success/Warning/Danger colors.
This is great, thank you @MangelMaxime!
The status for each language is in https://github.com/fable-compiler/Fable/blob/e0612ff27e53210d58215f29f701367f859721be/src/Fable.Cli/Entry.fs#L361
There is a discussion somewhere but if I remember correctly each status roughly means:
- Experimental: target is there but it's not currently maintained. Only PHP ATM, but thanks to @entropitor contributions maybe we can move it to alpha.
- Alpha: the target is in active development although in early stage. Currently Rust is in this state, but maybe @ncave wants to move it to beta.
- Beta: we encourage users to try it out to help with development.
- Stable: we believe the target is ready for production even if missing some features, and we will only do breaking changes with a major Fable release.
Ok, I will adapt to use the terms you mention and like that the documentation will also serve as a reference when deciding where each languages are at.

