after reading A short history of ReScript (BuckleScript) it seems that people are suggesting jsoo for production use and are using it for user facing applications;
which leads me to believe that I had a very different understanding, so I hope people with experience running it on prod can help and clarify these questions:
- aren’t the bundles huge? doesn’t it need to include a lot of ocaml code translations (runtime) as a minimum before user code is included?
- is chunk splitting even possible? is it possible to split a big application in smaller asynchronously loaded bundles?
- how do common ocaml concepts like
include
-ing a module and functors translate to jsoo, don’t these create copies and increase the bundle sizes further (meaning that commonly used ocaml libraries also increase the bundle size significantly)? - is there good tree shaking/dead code elimination? for example would using a single function of
Base
result in a bundle including all ofBase
or just this one function and its dependencies? - have you had issues with debugging, source maps and etc.?
- is it possible to use something
jsx
-like syntax to generate html similar toReasonReact
? - how are promises handled, for example is Lwt code automatically translated to promises?
- what about json, serialisation and yojson, is it easy and efficient (without increasing the bundle size too much) to serialise/deserialise types through yojson?
these were many questions…