Quantcast
Channel: ReScript Forum - Latest posts
Viewing all articles
Browse latest Browse all 1794

[ANN] ReScript Retreat Roadmap Summary 2024

$
0
0

TLDR; We could leave ml compilation in for a little while longer but it would break anyway because ml code can’t express uncurried mode.

Some background:
To be clear, it’s not about finding OCaml unappealing, it’s about a unified experience where everything you interact with is in the ReScript syntax, and by that can take advantage of all of the work that has been done and will be done with new features etc. Get a unified experience with editor tooling, and so on. This is very important to us and we’ve made large efforts to unify everything under the ReScript syntax.

In v12+ there won’t be a way to write code in ml that compiles in uncurried mode, since most of uncurried mode is at handled by wrapping things in the AST with constructs that can’t be expressed in regular ml syntax. The way it’s handled in ReScript is in the parser itself, which is partly why we want everything to use ReScript syntax - uncurried mode comes for free.

So there’s really no choice. We can leave ml compilation in v12+ but most things around it would break anyway because it doesn’t parse the code to uncurried mode.

Styled-ppx is awesome and I know you’ve put a lot of effort into supporting both ReScript and Melange for it, and I really appreciate that (which I hope you know). We obviously don’t want or like making life harder for maintainers of popular libraries in the ecosystem. But we do have a clear goal with where we’re taking ReScript (which I hope we’ve been clear about) and it’s about the unified and vertically integrated experience. Uncurried mode and the ReScript syntax is very important pieces of that vision, where we’ve decided that the trade off is worth it. And we don’t take that lightly, we know how much of a change uncurried mode is for the ecosystem.

As for the specifics, my immediate thoughts for solutions would be:

  • For styled-ppx, even though it’s additional maintenance burden, maybe maintaining separate ml and res code is acceptable? I don’t know if you’re planning to support uncurried mode in styled-ppx itself though?
  • Atdgen is really cool and I know there are a few who still use it with ReScript. But, the real solution here now that ReScript is its own language is to implement a dedicated ReScript mode for atdgen, just like there’s a mode for Java, TypeScript, etc. That will be also be better in the long term because it’ll be able to take advantage of ReScript specific features going forward. As with most other use cases this is something we can hopefully do a community effort to support if there are enough users.

I hope this post made the decision a little clearer.


Viewing all articles
Browse latest Browse all 1794

Trending Articles