An interesting and provocative post.
- The argument that “There’s no reason that Tern.js and Flow can’t match TypeScript’s developer tooling UX.” reminds me of Lisp programmer’s classic line about how a “sufficiently advanced compiler” could make their code fast. Perhaps, but I’m not holding my breath.
- With type inference, you can easily run into issues around where an error is reported. A frustrating experience with Flow (or C++ templates) is getting an error inside library code that uses your type, rather than at the source of the error in your own code. This is one of the reasons (performance is another) that Flow requires you to explicitly type exported symbols.