Bloomberg/bucklescript: A back end for the OCaml compiler which emits JavaScript
github.com
github.com
TL;DR
- Debuggable output
- Better interoperability
- Faster compilation
The sweet spot for Bucklescript seems to be in exposing bits of computation-heavy logic through OCaml. The reimplementation of a 55k Immutable.js in 899 bytes of compiled JS makes me go oh-damn-did-you-see-that! On the other hand, js_of_ocaml has rather unparalleled support for building UIs -- which probably makes it a better choice if you want to do your whole web app in OCaml, especially in combination with frameworks like Eliom.
Link?
That said, it is also quite easy to bind to the JS world with js_of_ocaml and nothing forces you to rely on tyxml or Eliom. You can use either the FFI which comes with js_of_ocaml, or gen_js_api ( https://github.com/LexiFi/gen_js_api ) which we have created to abstract OCaml/JS bindings from the underlying OCaml->JS compilation technology (we hope that Buckescript will support gen_js_api). The web client-side frontend of my company is using exclusively gen_js_api + the js_of_ocaml compiler (but not its FFI nor its standard library), which should make it straightforward to port to Buckescript at some point if the need arise.
UPDATE: Looks like the answer is (usually) "no"—Ocaml code generated by Coq frequently uses Obj.magic, which BuckleScript does not support. sigh