We knew about the tradeoff between backwards compatibility vs adoption since day 1. The end result is not as bad as you make it sound: Each file in your codebase can be in one of many modes: php code, hack will ignore it Requires you to write your code in a subset we consider sane. You can start writing type annotations and they will be checked when present. Requires you to annotate your function parameters, return types & class properties. There are a few other modes, like decl, which lets the type checker "import" types.