avik
- Karma
- 25
- Created
- March 20, 2014 (12y ago)
- Submissions
- 0
Creator of Flow, a static type checker for JavaScript.
Software engineer @ Facebook. Author of several research publications in the areas of programming languages and computer security.
Software engineer @ Facebook. Author of several research publications in the areas of programming languages and computer security.
It is with Flow.
Still early days but the reception has been strongly positive. We may be a biased bunch but we like our code mostly statically typed with the flexibility provided by dynamically typed languages. A large part of this…
The source also has an emacs plugin, named flow-types.el
It does care about prototypes. So it checks for inconsistencies between methods added to a prototype and their uses. The tradeoff is that for dynamically added properties, it doesn't always remember where they are…
Haha, yeah Hacker News didn't treat me well yesterday, so I'm trying to go through questions now and reply to them. :) Thanks for noticing!
If you can feed inferred static types to something like Google Closure Compiler, you do get performance benefits. Also, if you're code is implicitly statically typed (as checked by Flow) you will likely hit all the…
Yes, so the conclusion one might draw is that if your code is implicitly typed, it will run fast as well as probably do well when run through a static type checker.
One obvious thing to try is to use Flow's type inference to emit GCC annotations and see whether those optimizations kick in. (Of course, Flow can also try to replicate whatever GCC does, but that will take some time.…
Yes, it does. You can define object types like { x: number; y: string }, tuple types like [number, string], function types like (x:number) => string, etc.
We actually built this because we write a lot of JavaScript at Facebook, and we need a tool like Flow. So yes, we worked on it full-time, with "funding": our developers like to move fast, Flow helps them do that. (It's…
We have some basic editor support, more is coming soon. Flow exposes several commands that are useful through an editor, like type-at-pos (give it a position, it gives you back the inferred type), suggest (give it a…
The implementation is heavily influenced by Pottier's work on subtyping + inference. https://hal.inria.fr/file/index/docid/73205/filename/RR-3483... Also, some techniques from Typed Racket (occurrence typing):…
No, instead of complaining about 'x' having the 'any' type, Flow will actually try to infer a static type for 'x'. So in the best case there would be no errors (and in the worst case there would be actual errors to fix).
Yes, OCaml.
Hi, I'm Avik Chaudhuri, I'm one of the authors of Flow, and I'll be happy to answer questions.