Hacker News new | ask | show | jobs
by resoluteteeth 1466 days ago
F# is great and it benefits from the .net ecosystem but at the same time the language sometimes feels like it is being held back now by not wanting to add new features that c# doesn't support, so its relation to .net is kind of both a blessing and a curse.

Previously it added a lot of stuff on its own like async, etc. which was cool but also resulted in compatibility issues when c# later added similar features.

Now the f# developers are very concerned with compatibility but it basically means that f# can't get new features until c# already has them. It's also limited by the runtime which is designed around c#.

For example, it doesn't support type classes because (among other reasons) that might end up being incompatible with future c# type-class like features several years down the line.

It's also hard to learn f# unless you already know some ocaml/haskell.

ocaml has failed to catch on that much so far but I think it does have potential, and adding multicore support/effects is pretty promising.

On the other hand the fragmentation with stuff like reason/rescript is pretty dumb.

1 comments

From a pure pro-ocaml perspective I don't really appreciate rescript per se. But it truly does seemed to have raised awareness of the language among web devs who otherwise don't have a reason to worry about much outside of js/ts. The timing is also good because typescript has directly shown devs the value of types, and taught them enough about them to understand what ocaml is really offering above ts-style static type checking.

That's my impression from my last two typescript jobs, anyway. I don't know what, if anything, will come out of this, but I can't see it being bad.

I am curious. What does Rescript have that Reason did not have ?

I know the syntax is now incompatible syntax with OCaml so I see the broken eggs but I don't see the omelet.

I don't think it's that different at the moment but they apparently wanted to not be constrained by reason/ocaml compatibility going forward.

Reason seems to be pretty dead so now the relationship between ocaml and rescript is kind of like that between haskell and purescript.

This may be good if you only want to run it on the frontend but it's not as good if you're using ocaml on the backend and want to share code, but I guess there's js_of_ocaml

I also don't think the existence of rescript is in itself a bad thing, it's just that the whole confusion around reason/rescript may have harmed development of ocaml for a while.

> whole confusion around reason/rescript may have harmed development of ocaml for a while

OCaml is an anchor language for many important projects (e.g. Coq) and companies (INRIA, Janestreet etc). The momentum behind OCaml has grown and I don't think the rescript/reason separation affected it _that_ much.

But I am curious to know if rescript/reason issue harmed rescript. While rescript gained a lot of technical freedom from the breakaway from OCaml it lost some people along the way. Was the breakaway worth it in retrospect?

> if rescript/reason issue harmed rescript.

Personal anecdote: yes, it has.

I was very interested in Reason when it appeared, and it seemed to have immense momentum: exploring arguably better (or more familiar) syntax, tool integrations etc. I know that people ran regular OCaml workflows/projects with it.

And then the whole split happened ... why? "We don't want to be constrained by OCaml" while keeping all of OCaml's syntactic idiosyncrasies among other things doesn't sound like a proper, well, reason.

This is where I stopped being interested (and as I imagine, many people stopped, too). Because a slit in a niche miniature language (which it was at the time) means only one thing: not enough resources to continue with either one.

It doesn't help that the whole split was confusing to everyone. Good description here: https://ersin-akinci.medium.com/confused-about-rescript-resc...

I too lost interest in Reason/Rescript after Rescript became its own thing.

A lot of talent has moved onto other things (or stayed with Reason) with arguably minor gains for Rescript in terms of technical freedom gained.

Typescript is so dominant in this space that it really didn't make sense to split an already small community.

Oh I have no idea I didn't hear about any of these until after the schism or whatever, and haven't bothered to understand the differences and relationships. I use ocaml and hear js/ts people talk about rescript sometimes so I looked into it instead of the others.