fable-compiler.github.io icon indicating copy to clipboard operation
fable-compiler.github.io copied to clipboard

Feature matrix for languages

Open alfonsogarciacaro opened this issue 3 years ago • 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 👍

alfonsogarciacaro avatar Sep 30 '22 22:09 alfonsogarciacaro

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.

ncave avatar Sep 30 '22 22:09 ncave

Seems like a good representation to me.

To represents the color coding, we can use Icons + Success/Warning/Danger colors.

MangelMaxime avatar Oct 02 '22 14:10 MangelMaxime

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 ?

MangelMaxime avatar May 21 '23 14:05 MangelMaxime

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.

alfonsogarciacaro avatar May 22 '23 14:05 alfonsogarciacaro

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.

MangelMaxime avatar May 22 '23 19:05 MangelMaxime