It’s kind of scary that Dan Abramov doesn’t know about ML languages or typescript... I hope that he is just being humble, because otherwise I wonder if it was a complete lie when Facebook said that they were pushing on ReasonML instead of react.js. I know that he was not initially involved and that the first prototype used ocaml as a primary language before falling back to JavaScript.
I really appreciate Dan work and his multiple and very helpful posts, but as someone that enjoys functional languages and hopes to see a full featured ML react, or at least a full support for typescript, I really hope that Dan can see the advantages in the “functional way” given that he is now one of the main actors.
I think you’re a bit confused here. Facebook isn’t “pushing” anything.
There’s a React team. I’m on that team. We develop React. Facebook uses it all over the place.
There’s also a Reason team. (Its creator also wrote React originally.) They work on Reason and its React bindings. Facebook uses it in some places.
We talk to the Reason team of course. But there has never been a plan to force all React users to use Reason. I don’t know where you heard that. If you like it, that’s cool. If not, that’s cool too. We’re just sharing what we use.
I’m not sure what your practical concerns are (are Reason bindings or TS typings not good enough?) but I’d like to hear them!
Of course I know “about” ML and TS. If I didn’t know about them I wouldn’t mention them. :-) I haven’t developed anything meaningful in either of them but it’s not like I’m clueless about what types are. I’ve been using C# for years.
Thanks for your answer, I think that at the time of ReasonML presentation and a couple of other times I had the impression that there was quite of a push on that direction, but I may be wrong.
There’s not really such a thing as a “push” at FB — each product team is independent and decides what to use based on its own criteria. So there’s never an org-wide mandate to adopt a certain technology. Reason has some adoption but it’s happening organically.
IMHO, teams using a certain stack have agency to see that stack win the hearts and minds of other developers.
Additionally, the opinions of popular leads, managers etc on what should be used will count more. Winning their mindshare will win you a lot of FB org.
Winning a lot of FB org will exert a tremendous influence on the Open Source community as you now have large numbers of engineers working on open source projects on premium pay.
I believe this is how it works in most modern large engineering orgs. After reaching a certain critical mass of adoption, a team will be hard-pressed to use anything else, especially if reusing other team's components requires you to master, say, Redux anyway.