fable-compiler/fable-compiler.github.io

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:

image

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 ๐Ÿ‘

ncave commented

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.

I am working on the revamp of the documentation to support Fable 4

The matrix I have is for the supported languages.

CleanShot 2023-05-21 at 15 58 24

I tried to keep it minimal and readable at a glance

Are the categories correct ?

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.