Re:Reason React 0.8
by _bxg1 on Wednesday May 13, 2020 @06:33PM
(#23172601)
There's a difference between "the compiler is faster when run at the CLI" and "the language server is faster". A good language server remains responsive by doing quick, partial compilations on just the section that changed. A bad language server just wraps the standard compiler and re-runs the whole thing when a file is saved. The latter will eat up CPU/RAM and make for a frustrating dev experience, no matter how relatively-fast the base compilation time is.
[ Parent
| on HN ]
Re:Reason React 0.8
by thegreatpeter on Wednesday May 13, 2020 @07:11PM
(#23172953)
1. The language server, reason-language-server is written in native Reason and is _very_ fast.
In terms of compiler speeds, Draftbit has 1,000 ReasonML components and about 100 TypeScript files.
I can safely build AND type the entire ReasonML project before TypeScript returns the type results in watch mode.
OCaml (the Reason compiler) has historically had excellent (and fast) editor support tooling: Merlin.[1] That is now being packaged up as a language server (i.e., LSP).[2] Once you try a Merlin-based editor addon, everything else will seem dog-slow.
True, I've been spoiled by merlin ;)
The standard compiler can do a cold compile of a single file in milliseconds. When the compiler is that fast you _can_ just wrap it up and it'll still be faster than TypeScript.
But to answer your actual question: The current standard (reason-language-server) does simply wrap the compiler, and it's more than fast enough, but the community is working on a new merlin-based language server (ocaml-lsp) which does support partial compilation.