Recently, I have been witnessing a lot of projects migrating to Typescript and have to ask myself the same question. Is it time to stop using Flow and start using Typescript?
I've seen a lot of backlash from developers that were using Flow to typecheck their Javascript applications. One was even from a former Flow developer:
I'm dropping Flow in favor of TypeScript... and you should too.
— Jamie 🏳️🌈 (@jamiebuilds) 19. listopadu 2018
Flow just doesn't give a shit about the community... and I say that having worked on the Flow team at Facebook.
Facebook should drop Flow entirely. It's a bad investment for even them at this point
Then came another one from a friend of mine who's been using Flow for a long time:
OK, @flowtype, @AtomEditor, and Nuclide are dead for me. @code and @typescriptlang FTW.
— este (@estejs) 30. listopadu 2018
And then I read a comment from Apollo (GraphQL client) claiming they won't support Flow anymore and are moving to Typescript.
Sure, Flow has a lot of issues and since it's still unstable, it's very annoying to update your app to use the latest version. But I liked the idea to just have static types added to Javascript instead of having to use another language like Typescript.
That said, Typescript definitely has it's benefits like abstract/protected/private classes, methods and properties and there is a great community providing type definitions for almost every library.
So yeah, I am thinking of rewriting my current project to use Typescript.
Is there any hope left for Flow? Does it still have some benefits for which you would not migrate to Typescript?
Discussion (4)
I am switching from flow to typescript because I have a new employer and that's what they use.
I think flow is better with eslint.
I was using react with eslint and I extended it with the airbnb eslint lib.
The airbnb plugin was really good, warning me about things like unused states, stateless components etc.
I haven't been able to match all the features with tslint yet, but overall I find tslint a lot less problematic
TSLint will actually be deprecated in favor of ESLint and its Typescript plugin. (source: medium.com/palantir/tslint-in-2019...)
Elm?
Nice language, I might give it a try someday, but it's too different. All I need is Javascript with static types.