| 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. |
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.