3 ms·
Even though I'm a huge TypeScript fan, I'm grateful for the existence of Flow. Their focus on soundness has shown the TypeScript team that they should give a l
by spion 8y ago
Even though I'm a huge TypeScript fan, I'm grateful for the existence of Flow.
Their focus on soundness has shown the TypeScript team that they should give a lot more priority to getting the typesystem in a better shape over the years. If Flow didn't exist, I doubt we'd be seeing many of the features in TypeScript's --strict mode.
Plus, they were the first to develop some features like intersection types, or even some of the advanced type transformations. Shame it was (at least historically) a bit difficult to find them in the docs.
I'm hoping Flow can push TS to close up the remaining soundness gaps, and fix up some of their features (sealed vs open types is much better than the strange object literal checks in TS)
- nojvek 8y agoCompetition, even for open source projects is a great boon. I really would hate for Facebook to kill off flow because Typescript is popular. Microsoft, as great as they are at OSS, they still have to answer to a chain of Managers who are distant from the actual users of their software.
- ssttoo 8y ago> Microsoft, as great as they are at OSS Just a few years ago, that would have been a laugh. Don’t get me wrong, I love the world we’re living in :)
- acifani 8y agoI actually think TS team is much closer to the community than Flow's. Just look at the number of open and closed Issues on GitHub. To me, Flow feels like something they needed in Facebook and they happened to open source. Their main focus is still FB's internal use and the direction is set by it. TypeScript, on the other hand, does not feel like this at all. They truly put the community first, or so I - and many others - feel like.
- smt88 8y ago> Flow feels like something they needed in Facebook and they happened to open source This is how most Facebook tools feel to me. It makes me afraid to use them. React is possibly an exception, but again -- too afraid to use it because Facebook's open-source offerings seemed to have only selfish goals in the past and often seem to be full of important bugs.
- Klathmon 8y agoIt's amazing to me watching Typescript and Flow and the choices they make. From an actual typing standpoint, I MUCH prefer Flow. The soundness guarantees were traditionally much nicer, and the inference it does made some things MUCH simpler (I was able to create a typedef for the react-redux connect function that made it so you could use an entirely un-typed `mapStateToProps` function, and it would infer the types from the reducers as the prop types automatically. It was amazing reducing the amount of code/types needed for each component, and it still gave us intellisense-style hover tips in our editors for what the actual types of each prop were.). But at the same time, the tooling in the Flow world has always been MUCH worse. I found countless bugs on my own just with what I felt was pretty normal usage, there were many workarounds and issues on windows that were needed, flow-typed is an embarrassment compared to the @types org that typescript uses now, and there are so many weird options and settings that you can use in a `.flowconfig` file that are completely undocumented, deprecated but not documented somewhere, or are facebook-internal or meant to be used with metro (the react-native bundler) only or something. I love flow, and I still greatly prefer the model they use over that of Typescripts in many ways, but at the end of the day Typescript is winning the tooling fight, and that tooling is bringing many people over. "Imperfect" types that work consistently are better than "perfect" types that are flakey or difficult to use because of the tooling.