Hacker News new | ask | show | jobs
by WhitneyLand 3080 days ago
The question is why don’t they collaborate and unify the efforts?

It seems it should only not happen for a handful of reasons.

For example, if there were real intractable philosophical differences, if someone risks losing strategic advantage, or if competing is driving better results than collaboration could.

Yet it’s not obvious to me how any of these are true.

For many projects unification wouldn’t make sense by a mile even for reasons not listed here.

I don’t even see how the existing skill sets are tragically different, say like the the skill sets are so different for Linux/Windows admins who could never master the other’s job in a week.

In this case maybe there are reasons for separate projects but are they really super compelling?

Imagine the (potential) upsides of having more resources, less confusion, and more comprehensive tooling support.

To me they are both useful projects but I don’t see any fundamental advantage of one over the other that would make me lose sleep if everyone rallied behind a single effort.

2 comments

The JS type system world has benefited a lot from NOT having a monopoly. When Flow started gaining some traction, the whole "handle nulls properly" thing was a huge. During that time, the TS issue tracker was filled with comments on how it didn't really make sense. I don't think TS would have ever gotten strict null if Flow didn't "compete" with it.

Them being separate allows the projects to try stuff the other group disagrees with and prove they are right. I very much like that.

Beyond that, the 2 projects really are VERY different. Again, with strict null and all the pain, it's causing on the TS side. It's not easy to just bring in features of one and merge them to the other. The entire architecture is different (eg: the flow inference). Then there's the pitty shit: I don't know if they're involved with TS, but some very visible Facebook people just can't handle the fact that the entire world doesn't revolve around Unix, as nice as it would be if it did.

Some stuff is sparking some collaboration. Babel getting support for TypeScript syntax for example.

Strict null in TS was before flow public release.
That is not true at all!

Flow was announced November 18, 2014: https://code.facebook.com/posts/1505962329687926/flow-a-new-...

Typescript got --strictNullChecks with Version 2 which was announced July 11, 2016: https://blogs.msdn.microsoft.com/typescript/2016/07/11/annou...

Even if I'm being charitable and look for the date when the PR (https://github.com/Microsoft/TypeScript/pull/7140) was merged, we'd only get April 2016.

> The question is why don’t they collaborate and unify the efforts?

I have really wondered this. I suspect that the two projects had slightly different goals in the beginning, and are now slowly borrowing ideas from each other.

I think the only way they could truly merge is if ECMAScript standardized the subset which they both use and then TS and Flow could be used to introduce experimental proposals kind of like Babel does now.