Hacker News new | past | comments | ask | show | jobs | submit login
WebML: A Standard ML Compiler for the Web (github.com/keens)
128 points by lelf on March 8, 2020 | hide | past | favorite | 20 comments



There's also a well supported ML for the web from Facebook:

https://reasonml.github.io/

With React:

https://reasonml.github.io/reason-react/


None 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....

It's from 2011 and so predates most other Javascript-targeting languages. It's unfortunate it never got any traction.


SOSML [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

[1] https://github.com/kfl/mosml-js

[2] https://people.mpi-sws.org/~rossberg/hamlet/


There 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/


I 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.


Facebook's part is actually just the syntax of ReasonML, the actual ML-Javascript-compiler is Bucklescript from Bloomberg.


BuckleScript’s author works for Facebook for years now.


Reason is just a syntax frontend. You should be linking to BuckleScript instead.


The 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.



Interesting, the second new ML compiler to arrive on the scene, after Morel[1].

[1]: https://github.com/julianhyde/morel


Cool! I hadn't heard of this. SOSML [0] is the other most recent one I'm aware of.

[0] https://github.com/SOSML/SOSML


While 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.


I 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?


I'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


Is there a license? I looked at the source for a few files and found none.


Curious if they will be using Javascript garbage collection or rolling their own


If you're compiling to wasm, you don't have access to JS directly.


Meta: 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.)


Not two but three things: * Meta language * Markup language * Machine learning




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: