Forked from briangonzalez/typescript-vs-flow.md
Last active
November 9, 2017 19:16
-
-
Save someguynamedmatt/7fad4626dba46f41b66fee856aaefa3c to your computer and use it in GitHub Desktop.
Revisions
-
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 4 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,6 +8,8 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new Used by: Facebook... Created: 2014 > PROS - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π Babel integration @@ -37,6 +39,8 @@ _Stats for past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 n Used by: Lyft, Microsoft, Google, Asana Created: 2012 > PROS - π Out-of-the-box, first class VSCode integration - π Easier to setup -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,6 +13,8 @@ Used by: Facebook... - π Babel integration - π No _real_ learning curve - π Inference of types - π support for JSX > CONS - π No βout-of-the-boxβ integration with any editor - π Poor error messaging @@ -21,6 +23,7 @@ Used by: Facebook... - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π `.js` files could be flow, could be normal JS β not obvious at a glance > MEHs - π /π Flow is highly interested in creating a provably correct type system - π /π ~400 typed third-party libraries @@ -42,7 +45,6 @@ Used by: Lyft, Microsoft, Google, Asana - π `.ts` files easy to distinguish between `.js` files - π (as of 2.3) ability to type-check non-TS files with `--checkJs` - π support for JSX - π Babel integration - π Native watch-mode (file specific) - πππ ~3,000 third-party libraries -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 0 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -36,7 +36,6 @@ Used by: Lyft, Microsoft, Google, Asana > PROS - π Out-of-the-box, first class VSCode integration - π Easier to setup - π Used by default in Angular2 - π Helpful error messaging -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 8 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,19 +8,20 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new Used by: Facebook... > PROS - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π Babel integration - π No _real_ learning curve - π Inference of types > CONS - π No βout-of-the-boxβ integration with any editor - π Poor error messaging - π Poor tooling (Getting Flow to run is not easy) - π bug with JSX spread operator ( `<Component {...props} />` ) - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π `.js` files could be flow, could be normal JS β not obvious at a glance > MEHs - π /π Flow is highly interested in creating a provably correct type system - π /π ~400 typed third-party libraries @@ -33,6 +34,7 @@ _Stats for past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 n Used by: Lyft, Microsoft, Google, Asana > PROS - π Out-of-the-box, first class VSCode integration - π More community type offerings - π Easier to setup @@ -45,10 +47,12 @@ Used by: Lyft, Microsoft, Google, Asana - π Babel integration - π Native watch-mode (file specific) - πππ ~3,000 third-party libraries > CONS - π Possible increased language complexity --> learning curve - π In my experience there are frequent breaking changes from version to version (not sure if this is still a problem) > MEHs - π/π More frequent releases, this can introduce breaking changes - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -12,15 +12,15 @@ Used by: Facebook... - π Babel integration - π No _real_ learning curve - π Inference of types --- - π No βout-of-the-boxβ integration with any editor - π Poor error messaging - π Poor tooling (Getting Flow to run is not easy) - π bug with JSX spread operator ( `<Component {...props} />` ) - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π `.js` files could be flow, could be normal JS β not obvious at a glance --- - π /π Flow is highly interested in creating a provably correct type system - π /π ~400 typed third-party libraries @@ -45,10 +45,10 @@ Used by: Lyft, Microsoft, Google, Asana - π Babel integration - π Native watch-mode (file specific) - πππ ~3,000 third-party libraries --- - π Possible increased language complexity --> learning curve - π In my experience there are frequent breaking changes from version to version (not sure if this is still a problem) --- - π/π More frequent releases, this can introduce breaking changes - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 14 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,17 +9,19 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new Used by: Facebook... - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π Babel integration - π No _real_ learning curve - π Inference of types - π No βout-of-the-boxβ integration with any editor - π Poor error messaging - π Poor tooling (Getting Flow to run is not easy) - π bug with JSX spread operator ( `<Component {...props} />` ) - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π `.js` files could be flow, could be normal JS β not obvious at a glance - π /π Flow is highly interested in creating a provably correct type system - π /π ~400 typed third-party libraries @@ -36,17 +38,21 @@ Used by: Lyft, Microsoft, Google, Asana - π Easier to setup - π Used by default in Angular2 - π Helpful error messaging - π `.ts` files easy to distinguish between `.js` files - π (as of 2.3) ability to type-check non-TS files with `--checkJs` - π support for JSX - π **DECORATORS** (syntactic sugar, but oh so sweet) - π Babel integration - π Native watch-mode (file specific) - πππ ~3,000 third-party libraries - π Possible increased language complexity --> learning curve - π In my experience there are frequent breaking changes from version to version (not sure if this is still a problem) - π/π More frequent releases, this can introduce breaking changes - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity ### Links - https://engineering.tumblr.com/post/165261504692/flow-and-typescript -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -44,7 +44,7 @@ Used by: Lyft, Microsoft, Google, Asana - π **DECORATORS** (syntactic sugar, but oh so sweet) - π Babel integration - π Native watch-mode (file specific) - π Possible increased language complexity --> learning curve - πππ ~3,000 third-party libraries ### Links -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 17 additions and 15 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,7 +18,8 @@ Used by: Facebook... - π bug with JSX spread operator ( `<Component {...props} />` ) - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π Babel integration - π No _real_ learning curve - π /π ~400 typed third-party libraries @@ -30,20 +31,21 @@ _Stats for past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 n Used by: Lyft, Microsoft, Google, Asana - π Out-of-the-box, first class VSCode integration - π More community type offerings - π Easier to setup - π Used by default in Angular2 - π Helpful error messaging - π/π More frequent releases, this can introduce breaking changes - π `.ts` files easy to distinguish between `.js` files - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity - π (as of 2.3) ability to type-check non-TS files with `--checkJs` - π support for JSX - π **DECORATORS** (syntactic sugar, but oh so sweet) - π Babel integration - π Native watch-mode (file specific) - π Possible increased language complexity => learning curve - πππ ~3,000 third-party libraries ### Links -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,6 +6,8 @@ _Built by Facebook_ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO Questions ~0.9k_ Used by: Facebook... - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π No βout-of-the-boxβ integration with any editor - π Poor error messaging @@ -26,7 +28,7 @@ _Built by Microsoft_ _Stats for past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 new issues, SO Questions ~38k_ Used by: Lyft, Microsoft, Google, Asana - π Out-of-the-box, first class VSCode integration - π More community type offerings -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -14,7 +14,7 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new - π /π Flow is highly interested in creating a provably correct type system - π Inference of types - π bug with JSX spread operator ( `<Component {...props} />` ) - π Does it detect unused vars? βNo. Use a linter.β -A Flow developer response :( - π non-native watch mode - π Babel integration - π /π ~400 typed third-party libraries -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,6 +16,7 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new - π bug with JSX spread operator ( `<Component {...props} />` ) - π unused vars? βUse a linterβ -flow dev :( - π non-native watch mode - π Babel integration - π /π ~400 typed third-party libraries -
someguynamedmatt revised this gist
Nov 9, 2017 . 1 changed file with 16 additions and 10 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,16 +6,17 @@ _Built by Facebook_ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO Questions ~0.9k_ - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π No βout-of-the-boxβ integration with any editor - π Poor error messaging - π Poor tooling (Getting Flow to run is not easy) - π `.js` files could be flow, could be normal JS β not obvious at a glance - π /π Flow is highly interested in creating a provably correct type system - π Inference of types - π bug with JSX spread operator ( `<Component {...props} />` ) - π unused vars? βUse a linterβ -flow dev :( - π non-native watch mode - π /π ~400 typed third-party libraries ## Typescript @@ -35,6 +36,11 @@ Used by: Lyft, Microsoft, Google, Asana, - π `.ts` files easy to distinguish between `.js` files - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity - π (as of 2.3) ability to type-check non-TS files with `--checkJs` - π support for JSX - π **DECORATORS** (syntactic sugar, but oh so sweet) - π Babel integration - π Native watch-mode (file specific) - πππ ~3,000 third-party libraries ### Links -
someguynamedmatt revised this gist
Nov 3, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -33,8 +33,8 @@ Used by: Lyft, Microsoft, Google, Asana, - π Helpful error messaging - π/π More frequent releases, this can introduce breaking changes - π `.ts` files easy to distinguish between `.js` files - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity - π (as of 2.3) ability to type-check non-TS files with `--checkJs` ### Links -
someguynamedmatt revised this gist
Nov 3, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -41,4 +41,5 @@ Used by: Lyft, Microsoft, Google, Asana, - https://engineering.tumblr.com/post/165261504692/flow-and-typescript - https://jan.varwig.org/2017/02/15/flow-vs-typescript.html - https://eng.lyft.com/typescript-at-lyft-64f0702346ea - https://medium.com/@ckoster22/migrating-from-flow-to-typescript-b065796797db - https://www.reaktor.com/blog/refactoring-30000-lines-js-types/ -
someguynamedmatt revised this gist
Nov 3, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -31,7 +31,7 @@ Used by: Lyft, Microsoft, Google, Asana, - π Easier to setup - π Used by default in Angular2 - π Helpful error messaging - π/π More frequent releases, this can introduce breaking changes - π `.ts` files easy to distinguish between `.js` files - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity -
someguynamedmatt revised this gist
Nov 3, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -15,7 +15,7 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new - π/π Flow is highly interested in creating a provably correct type system - π Inference of types ## Typescript -
someguynamedmatt revised this gist
Nov 3, 2017 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -15,6 +15,8 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new - π/π Flow is highly interested in creating a provably correct type system - π Inference of types ## Typescript -
briangonzalez revised this gist
Oct 30, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,7 +13,7 @@ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new - π Poor tooling (Getting Flow to run is not easy) - π `.js` files could be flow, could be normal JS β not obvious at a glance - π/π Flow is highly interested in creating a provably correct type system ## Typescript -
briangonzalez revised this gist
Oct 30, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -38,4 +38,5 @@ Used by: Lyft, Microsoft, Google, Asana, - https://engineering.tumblr.com/post/165261504692/flow-and-typescript - https://jan.varwig.org/2017/02/15/flow-vs-typescript.html - https://eng.lyft.com/typescript-at-lyft-64f0702346ea - https://medium.com/@ckoster22/migrating-from-flow-to-typescript-b065796797db -
briangonzalez revised this gist
Oct 30, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ _Built by Facebook_ _Stats for past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO Questions ~0.9k_ - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ @@ -20,7 +20,7 @@ Past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO _Built by Microsoft_ _Stats for past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 new issues, SO Questions ~38k_ Used by: Lyft, Microsoft, Google, Asana, -
briangonzalez revised this gist
Oct 30, 2017 . No changes.There are no files selected for viewing
-
briangonzalez revised this gist
Oct 30, 2017 . 1 changed file with 16 additions and 16 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,37 +2,37 @@ ## Flow _Built by Facebook_ Past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO Questions ~0.9k - π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ - π No βout-of-the-boxβ integration with any editor - π Poor error messaging - π Poor tooling (Getting Flow to run is not easy) - π `.js` files could be flow, could be normal JS β not obvious at a glance - π/π Flow is highly interested in creating a provably correctness ## Typescript _Built by Microsoft_ Past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 new issues, SO Questions ~38k Used by: Lyft, Microsoft, Google, Asana, - π Out-of-the-box, first class VSCode integration - π More community type offerings - π Easier to setup - π Used by default in Angular2 - π Helpful error messaging - π More frequent releases - π `.ts` files easy to distinguish between `.js` files - π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity ### Links -
briangonzalez created this gist
Oct 30, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,41 @@ # Flow vs. Typescript ## Flow Built by Facebook Past month: 0 merged PRs, 30 Proposed PRs, 50 closed issues, 135 new issues, SO Questions ~0.9k π Built by Facebook, just like React β _in practice, this doesnβt seem to provide a marked advantage for flow_ π No βout-of-the-boxβ integration with any editor π Poor error messaging π Poor tooling (Getting Flow to run is not easy) π `.js` files could be flow, could be normal JS β not obvious at a glance π/π Flow is highly interested in creating a provably correctness ## Typescript Built by Microsoft Past month: 215 merged PRs, 46 Proposed PRs, 440 closed issues, 215 new issues, SO Questions ~38k Used by: Lyft, Microsoft, Google, Asana, π Out-of-the-box, first class VSCode integration π More community type offerings π Easier to setup π Used by default in Angular2 π Helpful error messaging π More frequent releases π `.ts` files easy to distinguish between `.js` files π/π Typescript is not interested in creating a βprovably correctβ type system β instead tries to strike balance between correctness and productivity ### Links - https://engineering.tumblr.com/post/165261504692/flow-and-typescript - https://jan.varwig.org/2017/02/15/flow-vs-typescript.html - https://eng.lyft.com/typescript-at-lyft-64f0702346ea