Hacker News new | ask | show | jobs
by consilient 1043 days ago
Purescript has by far the strongest type system of any mature compile-to-js language, good FFI, footprint comparable to react.

Elm is a heavily stripped down purescript, plus an ambiguously-benevolent dictator for life. Also truly terrible interop. It's a good learning environment but I would strongly recommend against using it for anything big.

Rescript is basically Ocaml with half-js syntax.

Typescript is bizarre. On a scale from 0 (C) to 10 (Haskell), it's a 12, a 6, and a 2 duct taped together. It's got some incredibly powerful features (template literals, conditional types), but it's missing most of the standard "advanced"-but-production-ready type system features (e.g. no HKTs, no type-directed emit) and the foundation is absolutely riddled with soundness holes.

1 comments

Also worth mentioning Idris, although its tooling and ecosystem are still pretty much nonexistent.
Yeah, that's what I meant by "mature". Agda also has a js backend, but neither one can really stand alone. Haskell is closer, but GHCJS is still very much a second class citizen of the ecosystem.
Clean also has WASM as the compile target via its IR, and its tooling is great. Unfortunately though I couldn't find any sort of a community when I was looking into it, but other than this the language looks quite mature and very industry-oriented. Then there's Lean which also can compile to WASM via some sort of a bridge, it has decent tooling but the ecosystem is still nonexistent.