Ranked in these QuestionsQuestion Ranking
Pro Superior type inference
Ocaml type inference is so smart that you never have to repeat yourself and keep code very clean, type errors also are very pleasant.
Pro Immutability with escape hatches
reason includes true immutability, but it has escape hatches to let you use mutations in exceptional cases.
The same reasonml code can compile to js (eg. run on browsers or node.js, use any lib in npm), or compile to assembly thru ocaml (unless of course you load js externals), running on any device, with C-comparable (or better) performance.
Pro JSX syntax natively supported
Reason was created by the creator of react, for developers already using JSX to template web or native UIs this results very familiar.
Pro Super super fast DOM implementation
The ‘imperative’ DOM from Imba is factors of magnitudes faster than most current virtual DOMs.
Pro React inspired approach
Pro Close alignment between language and DOM
The DOM is a first class citizen of Imba and that allows for short elegant interaction.
Pro Ruby inspired syntax
Con A standard async syntax is pending
Async syntax is not standard across native/js projects and in both cases a bit awkward for non-ocaml devs. Currently this is reasonml most voted issue in their GitHub repo so hopefully, there's news soon.
Con Ecosystem is a mess
A wonderful language, but a user is required to use multiple different package managers for many things (esy, bsb, npm). Some standard templates from bsb (e.g. react-starter) are not installable out of the box.
Con Still a young language
But looks very promising.