Hi, thanks for asking, there are lots of questions, so we may edit and refine later.
Is there an overview of the (current and/or expected) concrete differences between ReScript and ReasonML
This is not an apple to apple comparison, ReasonML is a parser, it is not a language on its own, it is hooked to ReScript compiler as an input. ReScript support multiple syntaxes, it recently introduced its own syntax which is similar to ReasonML but different to favor JS experience. For example, in the new ReScript, [1,2]
is exactly js array [1,2]
while in ReasonML notation, [1,2]
is a list {hd : 1, tl : { hd : 2, tl: 0}}
, this could cause confusion to JS users.
Tech aside, the other important part is that ReasonML parser has different goals which don’t fit our vision, for example, it aims to support all OCaml versions which makes it quite large and we can not embed it inside our compiler (we have to spawn an external process just for parsing).
How does ReasonReact relate to ReScript and ReasonML?
ReasonReact is part of the ReScript ecosystem. There’s no compete between ReScript and ReasonML since they are not apple to apple comparison as I said before, the ReasonML is one component in the ReScript compiler that we want to replace it with a dedicated JS like syntax.
Differences with TypeScript
TypeScript is an awesome language. The difference is the trade off we made between TypeScript and ReScript. TypeScript is designed to be a JavaScript super linter, it uses type system to give your better editing experience, it has seamless interop with JavaScript, at the same time, it inherits all JavaScript gotchas. While ReScript is a clean slate, the compiler is built in native code, which is much faster (10x not 10%), it has a sound type system and optimizing compiler which generates optiimzed code based on type information, at the same time, it tries to make JS interop as seamless as possible.
So you can think that TypeScript and ReScript are solving the JS typing in two directions, TypeScript takes what JavaScript gives and try to make it more strongly typed while ReScript take a clean slate and try to make it more JavaScript friendly.
We currently use TypeScript on the back end, too. Does ReScript fit the purpose?
Yes, we support backend on Node
The other questions are answered by other people, I will do some cleaning later and add it back to the FAQ