react-native-windows icon indicating copy to clipboard operation
react-native-windows copied to clipboard

Should the default `-init` language for apps be changed to C#?

Open SheetJSDev opened this issue 1 year ago • 1 comments

According to the compatibility matrix https://microsoft.github.io/react-native-windows/docs/native-code-language-choice , for broadest compatibility, modules should use C++ (since both C++ and C# apps can consume C++ modules) while apps should use C# (since C# apps can consume both C# and C++ modules).

Currently, react-native-windows-init creates C++ apps by default. For most users who are consuming third party modules, not necessarily writing their own, it would make sense to default to C#.

Note: for libraries (---projectType lib), it still makes sense to default to C++

SheetJSDev avatar Sep 10 '22 17:09 SheetJSDev

That is a logical conclusion from the compatibility matrix. However, we are in the middle of transitioning from one RN architecture (Paper) to another (Fabric). As such we want to leave our current Paper implementation untouched in major ways, such as this one. For the upcoming Fabric architecture, it's highly likely that we will be beginning with C++ support initially (because there are many partners that require this) and adding C# support second. At that point we can reevaluate what the appropriate default is. We also want to factor in usage telemetry (link) into that decision.

So for the near term, no change here. But this topic is being tracked for later evaluation on the other side of the new architecture.

chrisglein avatar Sep 12 '22 19:09 chrisglein