4 ms·
> Reason and Elm died off I'm still quite sad that Reason died. The syntax was much more comfortable and familiar than OCaml's while still delivering a ton of
by Hermitian909 4y ago
> Reason and Elm died off
I'm still quite sad that Reason died. The syntax was much more comfortable and familiar than OCaml's while still delivering a ton of power. Have an optimizing compiler run on your JS was actually quite helpful. As a bonus you could have your backend running either Node or OCaml depending on your needs (ecosystem vs perf).
Was really unfortunate when the drama around Reason the language vs the Bucklescript compiler blew up and resulted in ReScript (a language that appealed to approximately no one in the existing user base).
- satvikpendem 4y agoYes it really was nice. I thought Reason could give Rust a run for its money as something similarly ML-like but without the manual memory management via the borrow checker. But sadly the Reason and OCaml ecosystem is still very much fragmented, there is nothing like what cargo does (entirely, not piece-wise) in the OCaml space.
- yawaramin 4y agoReason didn't exactly 'die', the toolchain that most people used to call 'Reason' just rebranded as ReScript. And no, you could not have your backend running either Node or native OCaml (I assume you mean binary executable), no one ever made a viable library or framework to do that. Sure, it was theoretically possible if you did a ton of work, but no one did that, because it would have been a huge amount of work (seriously, a lot).
- Hermitian909 4y agoHi Yawaramin, I remember you fondly from the discord and hope you're well. > Sure, it was theoretically possible if you did a ton of work, but no one did that, because it would have been a huge amount of work (seriously, a lot). I think I communicated unclearly. It sounds like you read my statement as "run the exact same code in node or OCaml" which I agree would have been very hard. I had a much simpler multi-service setup where I could share some business logic. Basically I had two services with the code unique to them stored in different directories, /ocaml-server and /node-server respectively. Both called into a common /lib directory. /ocaml-server had some very hot loops in it, /node-server had more standard business-y code that hooked into various npm packages. > 'Reason' just rebranded as ReScript Between the breaking changes and the general change in development philosophy (not really caring about OCaml server side) I felt it was a completely different language. Certainly switching to the ReScript compiler for my project would have required nearly a complete rewrite.
- yawaramin 4y ago> It sounds like you read my statement as "run the exact same code in node or OCaml" which I agree would have been very hard. Hello! Indeed, I did misunderstand you. I agree that it was possible to share some parts of the code between Reason's JS target with BuckleScript, and native target with the stock OCaml compiler. I think a pretty reasonable number of people did that. Actually, it's still possible to this day even with ReScript e.g. https://github.com/aantron/dream/tree/master/example/w-fullstack-rescript https://github.com/aantron/dream/tree/master/example/w-fulls... > Between the breaking changes and the general change in development philosophy...switching to the ReScript compiler for my project would have required nearly a complete rewrite. There were perhaps a couple of minor breaking changes but can you explain why it would have required a near complete rewrite? I wasn't aware of anything major like that. ReScript even supported and as far as I know, to this day continues to support the old Reason syntax.
- aeontech 4y agoI thought ReScript was mainly the result of renaming things for clarity (between reason and buckles crypt there seemed to be a lot of confusion for new people)? It seems to be still alive (10.1 just released last week... i keep meaning to try it, but haven't gotten around to it yet...) https://rescript-lang.org/blog/release-10-1 https://rescript-lang.org/blog/release-10-1