Python at Scale: Strict Modules
> 90. Consider Static Analysis via typing to Obviate Bugs<p>Personally I wouldn't recommend using typings (we've tried around 1 year ago for multiple greenfield services ~5k LOC each):<p>- you will be better off investing into proper testing (I mean here code coverage), refactoring and onboarding documentatio/handholding sessions with devs who are on top of the codebase<p>- in practice annotations make code LESS readible, not more (unless variable names and general code structure and conventions are bad)<p>- remember most Python devs have little experience with staticly typed langauges, so in practice your team will be skipping annotations - e.g using Dict[str, Any], which defeats the whole purpose of annotations; actually seasoned C++ devs will be skipping it once they will see they can get away with it<p>Typings are still in 0.x version and are constantly changing - do it for fun or to put typings on your CV, but don't expect it's going to help with readibility, bug prevention, documentation. These are solved with proper structure, conventions, testing and developer prep (readme + pairing).<p>If you believe bigger projects need annotations tell me why Sentry didn't go with them yet?