3 ms·
The static types protect you from undesired runtime behaviors with respect to OCaml's runtime semantics, but what about Javascript's one? This is better than n
by junke 11y ago
The static types protect you from undesired runtime behaviors with respect to OCaml's runtime semantics, but what about Javascript's one?
This is better than nothing, sure, because your code is first checked in OCaml but once the code is running, it does it according to Javascript rules.
I imagine there could be subtle bugs introduced during this process (e.g. your OCaml code manipulate integers, but Javascript has numbers, a.k.a. double floats, as far as I know).
- Drup 11y agoThis is no different than trusting the processor for running the emmited assembly according to the model you have for what assembly is supposed to do. Here, the compiler emits (a subset of) javascript which are assumed to have a semantics, and we trust the browser engine to execute it according to the semantic. Of course we don't assume the semantic of javascript to be sane, we just assume it follows the spec (and we emit accordingly).
- rlander 11y agoI see your point, but that's like arguing compiled Haskell code is unsafe, since Haskell has type erasure. Any code generation machinery is subject to subtle bugs and especially so the flesh and bones kind ;)
- e_d_g_a_r 11y agoI haven't had a single problem at all and I've wrapped even the most sensitive stuff like the event emitter itself and streams.