Luckily, BuckleScript and Reason are now united under a common name, ReScript. This change has brought about a fair deal of controversy, as it poses to further divide an already niche community with yet another syntax layer.
That aside, the project feels like it's in a much healthier state than two years ago. Unifying the documentation under a single domain is a non-trivial change that makes it easier to acclimate to the ecosystem. In addition, the new VSCode extension goes a long way to make the experience feel at least comparable to TypeScript.
Now's the right time to get into ReScript and start exploring some of its killer features:
- Great type inference with basically no need for annotations.
- No undefined or null. Instead, a robust option type.
- Pattern matching, automatic currying, and other paradigms associated with functional programming languages.
I want to bring particular attention to the last bullet point since it's the most important when discussing real-world codebases. A new toolchain doesn't amount to much if it doesn't easily integrate with existing systems.
To test this, I created a prototype with create-react-app and Tailwind (full code available here).
My only real gripe with ReScript is the advertisement that it's "the fastest build system on the web". Now, how can that be possible when ESBuild exists?