-
Notifications
You must be signed in to change notification settings - Fork 428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Future of ReasonML, planned support for the BuckleScript/ReScript compiler #2634
Comments
ReScript's Reason version is feature frozen to v3.6 for backwards compatibility and will not get any further version updates within the compiler itself. |
forgive me, but I am still confused and am trying to read between the lines here. it's been
summarized as:
|
@tristanpemble Thank you for the question and I apologize for the quiet period - I had taken a couple of months off of work. ReasonML will continue development, and I'm working on some things that will make it easier for the community to assist in project management. I'll provide the tentative plan (please be understanding if we need to adapt or reprioritize). Consider this as more of a sketch of ideas I think we should work on.
There's a lot more that we need to do as well, but these are the ones I will for certain be working on immediately. |
ReasonML has always had two ways to compile to a browser, but only one was advertised. This was probably done to avoid confusion but also for a lot of people BuckleScript was the better choice. That choice was removed during the rename to ReScript (except there is a backwards compatibility option for existing projects). The other way is js_of_ocaml, it was created long before ReasonML and is well-used in the OCaml community so it will be around for a long time to come. For your use case it's actually the better option; code that leverages ReScript's advantages is unusable in a native backend, it was already like writing a different language, whereas js_of_ocaml aims to compile standard OCaml compiler output to the browser. |
thanks so much! so the way I am interpreting the conversations here and from the Hacker News comment section on the recent ReScript announcement:
|
@tristanpemble Sounds about right. If preserving your options for both js targets and native is important then Reason Syntax + jsoo is a potential option that is being explored and in fact we've put forth considerable effort into a prototype of what that could look like. It's also something we can invest much more in (sponsoring) if we have people willing to work on improving the jsoo compiler for this use case. |
Targeting both native and JS with Reason + JSOO has been a viable option for a while. I deployed it to production in 2017! I developed the project as a BuckleScript app but deliberately kept the core agnostic so I could compile it to native and run the extensive tests really really fast. I ran into an issue with mutual recursion (hongbo refused to implement trampolining) and, because I only had a small layer of BuckleScript code, was able to port that to JSOO fairly quickly. It worked very well. |
Has there been any surveys through the community of how everyone feels about ReScript? Since ReScript was not exactly a community effort via an open RFC and instead was an internal decision by some of the maintainers of BuckleScript it might be beneficial to see what's the perspective of the boarder community who targets JS via Reason/OCaml (the main target of ReScript, I guess?). If enough people would rather keep using ReasonML itself and are uninterested in ReScript, it's possible as a community to champion that effort of maintaining BuckleScript the compiler via either forking it or maintaining a workaround similar to the only employed by reason-repacked. There are multiple reasons why BuckleScript has been a better compiler than JSOO, I mean it's based on JSOO with custom modifications that made it more developer friendly. So why don't we run such a survey over the community? |
Not specifically, but this is the wrong place to discuss it (as is discord). Take it to the official forum.
It's not based on JSOO, it's turned into a complete fork of OCaml that occasionally pulls in upstream changes. They take completely different approaches to the problem. Reason-repacked is admirable but I wouldn't build a production system based on it. At some point (possibly many years from now) the option to use reason will be removed, and my plan is to work with the ReScript team to get the language to where I need it rather than fight and fork. |
I don't really know how useful it'd be to discuss a poll on whether or not people think ReScript is strictly an improvement over Reason in the ReScript forums which are under the control of the ReScript maintainers who already spent months of their time on the project
I mean as things stand reason-repacked is just the latest version of Reason in ReScript but with the letop patch. I will be updating it to v4 whenever that's out though
I'd be on the same boat if for my lack of confidence in their intentions going forward. And technically speaking they forked and started "fight"ing changes (denying the letop PR and then closing it because they're "working on better alternatives" [none exists until today]) so I don't personally see the future being any different |
Will this new avatar of ReasonML be able to support react native? Currently it seems that ReScript dragged away the current react native support along with it. |
I don't see a bright future for this project, one transpiled language was already enough on our plates to look for type definitions, now two... |
There won’t be two, because reasonml is no longer a transpiled language (the existing support for that is retained only for compatibility). |
So what is the appeal of reasonml now? |
The same as it always was - an alternative syntax for OCaml. It's popularity as a transpiled JS language was always more thanks to the combination of it's good syntax with BuckleScript, and the BuckleScript team chose to create a new syntax breaking away from 100% OCaml compatibility (that among other things lead to the rename as ReScript). ReasonML maintains the 100% goal and that is incompatible with ReScript's new direction. This change removes the appeal of ReasonML to JS users; eventually ReasonML will fade from the ReScript landscape and this awkward transition phase will be just a footnote in the changelog. But that doesn't mean ReasonML is dead. It still has fans that compile to native OCaml (and it can still be used to generate JS via OCaml's standard |
Hello, So.. Ocaml v5 is around the corner, tentatively two months from now (September 2022) Leaving what the core issues with that are aside - can anyone suggest some clear cut reasons that would allow me to make a cut-throat yes or no decision as to whether to start off with Ocaml syntax (no) or invest in learning ReasonML (yes) |
obvious choice is to learn OCAML, same as a budding web dev asking if they should learn Typescript or Javascript first. Always learn the primitives in a transpilation, it's inescapable. |
Path forward is pretty clear now: Reason is OCaml, and can be used with Melange and Dune |
Since the BuckleScript/ReScript rebranding we didn't get much information regarding ReasonML's future 😕
It seems a v4 is on its way (and from the look of it the new features are great!), but since there was no announcement of any sort I'm a bit confused, what will be included, and when it'll be released?
Also, does anyone know whether or not BuckleScript/ReScript will update the ReasonML version to v4 (as per some blog post, it seems they plan to keep "supporting" ReasonML, but are not explicit about how they'll support it)?
As a big fan of ReasonML and BuckleScript willing to keep using ReasonML instead of ReScript I'm really concerned about the lack of information and roadmap for ReasonML. Any news to share?
The text was updated successfully, but these errors were encountered: