5 ms·
I am particularly curious why they chose to start from scratch instead of cooperating with Dropbox on mypy.
by ericpts 8y ago
I am particularly curious why they chose to start from scratch instead of cooperating with Dropbox on mypy.
- ben509 8y agoThey didn't start entirely from scratch, they've been doing this with PHP already: > Internally, Pyre's high-level architecture is similar to that of Hack, Facebook's type checker for PHP. If they had a performant codebase to start with, this makes a lot of sense.
- stochastic_monk 8y agoThe same reason everyone has a deep learning platform. It’s about developer mindshare and industry dominance rather than honestly thinking they’ll make a better framework starting from scratch rather than improving someone else’s.
- oblio 8y agoAlso the same reason everyone has a VM, programming language, back end framework or front end framework. Apple: LLVM (I know I’m stretching the definition here :) ); Objective-C, Swift; N/A; Cocoa. Microsoft: .NET CLR; Visual Basic, C#, F#; ASP.NET; N/A. Facebook: HHVM; Hack; N/A; React. Google: Go, Dart; Golang, Dartlang; GWT, Guava; Angular; Android, Flutter. Oracle: JVM; Java; APEX; N/A. It seems that for some reason just Amazon doesn’t want to play :)
- electrum 8y agoYou could add Folly as Facebook's backend C++ framework (it's somewhat analogous to Google's Guava for Java).
- Sammi 8y agoMissing some front end frameworks: Microsoft: WPF, Blazor Oracle: JavaFX
- jrs95 8y agoApple actually sort of does have a backend framework: WebObjects. They just seem to have deprecated it in favor of other solutions. Still, I've noticed at least iTunes Connect is still using it. And for what it's worth, Swift is going to have more server related stuff coming to the standard library (https://swift.org/server-apis/ https://swift.org/server-apis/), and I wouldn't be surprised if Apple starts adopting this eventually as well as it continues to improve.
- Rotareti 8y agoI'd add ReasonML to the Facebook list - one of the most promising general purpose languages out there, IMO.
- phooji 8y agoGood question [I am the 'Pieter' on that blog post]. There will be a talk at PyCon that covers parts of this. It comes down to two reasons: 1) Performance. We needed something that would consistently work quickly on Instagram's server codebase (currently at several million lines). 2) We are building deeper semantic static analysis tools on top of Pyre. We've built some of these tools for Hack/PHP already, so following the Hack type checker's architecture is the best way for us to achieve this.
- Twirrim 8y ago> 1) Performance. We needed something that would consistently work quickly on Instagram's server codebase (currently at several million lines). That's not really an answer to why you didn't work on mypy, at least to an outsider to the decision making process. Are you saying that you discovered it's just not possible to scale mypy (or at least not without extensive work / more work than building your own solution?) I can appreciate the choice in context of 2) :)
- phooji 8y agoI think (2) is the overriding concern: we're getting really great results with the static analysis tools we've built internally on top of the Hack type checker. Building a similar tool on top of mypy would've required fairly invasive changes; we decided to use the Hack type checker infra instead. Full disclosure: I worked on the Hack type checker briefly, a long time ago :)
- ldng 8y agoTypical Facebook NIH: it's not fast enough because it's written in O'Caml Edit: oh and copyright