News for hackers. Stuff that matters.
Re:Reason React 0.8 by bgorman on Wednesday May 13, 2020 @06:06PM (#23172371)
With ReasonML and other ML languages the type system is advanced enough to make many error conditions unrepresentable in the type system, and therefore the bugs move from runtime to compile time. Typescript has slowly been making its type system more powerful and exhaustive, but ultimately the fact that it is a superset of javascript will always keep it from having the compile time safety you can get in other languages.

ReasonML (OCaml) natively supports pattern matching, variants (Sum types), polymorphic variants, smart constructors, abstract data types, recursive types, and modules.

When you know how to use all of these features, you can prevent a remarkably large surface of bugs from ever compiling. As a new user, the first feature that will probably bring a smile to your face is pattern matching with variants.

If you are interested I highly recommend the book "Learn Type-Driven Development"

Re:Reason React 0.8 by _bxg1 on Wednesday May 13, 2020 @06:08PM (#23172394)
What's the editor support like? TypeScript has industry-leading editor integration with insanely fast response times. I'm always wary of new languages for this reason; I've been burned before by Facebook's own Flow type system.
Re:Reason React 0.8 by bgorman on Wednesday May 13, 2020 @06:13PM (#23172434)
As far as editor support, I have used reason-language-server (https://github.com/jaredly/reason-language-server) with Emacs (current), Vim and VSCode (provided through reason-vscode plugin).

I used to use IntelliJ, and there was a solid plugin for that as well.

ReasonML's compiler is way faster than Typescript's.

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.
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.

Re:Reason React 0.8 by yawaramin on Wednesday May 13, 2020 @06:59PM (#23172861)
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.

[1] https://github.com/ocaml/merlin

[2] https://github.com/ocamllabs/vscode-ocaml-platform

Re:Reason React 0.8 by andrepd on Wednesday May 13, 2020 @08:22PM (#23173556)
True, I've been spoiled by merlin ;)
Re:Reason React 0.8 by spyder81 on Thursday May 14, 2020 @01:50AM (#23175826)
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.

Re:Reason React 0.8 by Scarbutt on Wednesday May 13, 2020 @09:58PM (#23174338)
I'll take super fast compilation first ;)
Re:Reason React 0.8 by dmit on Wednesday May 13, 2020 @06:10PM (#23172406)
Reason support in VSCode is very solid.
Re:Reason React 0.8 by davesnx on Thursday May 14, 2020 @04:41AM (#23177027)
That's not even true. It's still very early days for Reason VSCode tooling, since you might find a few extensions that support most of the cases but lacks a few key features that you might be used to while writing JS/TS.
Re:Reason React 0.8 by shermanmccoy on Wednesday May 13, 2020 @08:41PM (#23173746)
I use the Reason Language Server and eglot in emacs on a linux system and it is very snappy. Reason-cli gives you code formatting also.