6 ms·
WebML: A Standard ML Compiler for the Web
- melling 7y agoThere's also a well supported ML for the web from Facebook: https://reasonml.github.io/ https://reasonml.github.io/ With React: https://reasonml.github.io/reason-react/ https://reasonml.github.io/reason-react/
- elcapitan 7y agoFacebook's part is actually just the syntax of ReasonML, the actual ML-Javascript-compiler is Bucklescript from Bloomberg.
- chenglou 7y agoBuckleScript’s author works for Facebook for years now.
- kccqzy 7y agoReason is just a syntax frontend. You should be linking to BuckleScript instead.
- lymitshn 7y agoThere is also F# Fable[0] compiler that compiles F# to JS. I would say its more ML like, syntax wise (excluding bucklescript ofc). [0] https://fable.io/ https://fable.io/
- kqr 7y agoI was going to point out the same; if you can get your ML fix from F#, definitely look Fable up -- it's nothing but surprised me with how well polished it is.
- Athas 7y agoNone of these are Standard ML! There are people who prefer SML for various reasons. Somewhat unexpectedly, there is in fact already a very good SML-to-browser solution, namely the unfortunately named SMLtoJs: https://github.com/melsman/mlkit/blob/master/README_SMLTOJS.md https://github.com/melsman/mlkit/blob/master/README_SMLTOJS.... It's from 2011 and so predates most other Javascript-targeting languages. It's unfortunate it never got any traction.
- eatonphil 7y agoSOSML [0] came out recently, written in TypeScript and sporting an online interpreter. Then there's this prominent SML-er's JavaScript backend for Moscow ML [1]. And Andreas Rossberg's HaMLet [2] also has a JavaScript backend. [0] https://github.com/SOSML/SOSML https://github.com/SOSML/SOSML [1] https://github.com/kfl/mosml-js https://github.com/kfl/mosml-js [2] https://people.mpi-sws.org/~rossberg/hamlet/ https://people.mpi-sws.org/~rossberg/hamlet/
- protomyth 7y agoIs there a license? I looked at the source for a few files and found none.
- mhd 7y agoInteresting, the second new ML compiler to arrive on the scene, after Morel[1]. [1]: https://github.com/julianhyde/morel https://github.com/julianhyde/morel
- eatonphil 7y agoCool! I hadn't heard of this. SOSML [0] is the other most recent one I'm aware of. [0] https://github.com/SOSML/SOSML https://github.com/SOSML/SOSML
- darksaints 7y agoI don't really follow web development much...what is the status of DOM APIs in WebAssembly? Is it now possible to use a WebAssembly-compiled language end to end, without any javascript acting as an intermediary?
- enos_feedler 7y agoI've been wondering the same, but also trying to understand the impact of DOM access in WebAssembly. This might create a massive fragmentation problem for web platform code and I am not sure the benefit. ObjC -> Swift worked. Java -> Kotlin might work for Android, though still somewhat annoying. I don't know what the future of communicating web code with snippets would be like if everyone chose their own language. I am not a web developer, but is this happening with TypeScript now? Is it a problem? EDIT: I am pro-WebAssembly, but I am starting to think the benefits are actually about taking the philosophy of the web outside the browser and leave DOM-based pages to html/css/js
- eatonphil 7y agoThe usual pitch: if you're interested in seeing more Standard ML news, check out /r/sml on Reddit. There's relatively good discussion and postings for a small subreddit.
- jez 7y agoas a link: https://reddit.com/r/sml https://reddit.com/r/sml
- adultSwim 7y agoCurious if they will be using Javascript garbage collection or rolling their own
- hajile 7y agoIf you're compiling to wasm, you don't have access to JS directly.
- xuejie 7y agoWhile I certainly agree a Standard ML compiler can be quite useful(and huge respect for the author!), I noticed the compiler is purely written from scratch, and the question remains when the quality of generated code can be as decent as BuckleScript behind ReasonML. Unless SML fits well with the model of WASM(which I believe is not the case), significant work will be required to tweak the compiler.
- Koshkin 7y agoMeta: I have an eye strain each time I have to figure out which of the two things ML stands for. (Well, "Standard" kinda helps in this particular case, but I do not trust myself.)
- GolDDranks 7y agoNot two but three things: * Meta language * Markup language * Machine learning