Conducted among over 1,200 respondents, Facebook's 2025 Typed Python Survey highlights how and why Python developers have increasingly adopted the language's type hinting system. The survey also sheds light on what developers value most, as well as their biggest frustrations and wishes.
Overall, 86% of respondents reported they "always" or "often" use type hints in their code, with adoption highest among developers with 5–10 years of Python experience.
While the data shows that type hints have been widely adopted among the surveyed sample, selection bias cannot be ruled out, as developers who use typing may be more likely to respond. Nevertheless, the survey reveals interesting trends among Python developers who use type hints.
The survey results reveal that Python’s type hinting system has become a core part of development for most engineers. [...] We found that adoption of typing is similar across all experience levels, but there are some interesting nuances.
Both junior (0-2 years of experience) and very senior (10+ years of experience)developers use type hints less frequently, at 83% and 80% respectively. The survey authors suggest that junior developers face a steeper learning curve, while senior developers may be working with large, legacy codebases where adopting type hints is more difficult.
Developers cited several benefits from adopting Python’s type system, including better readability and in-code documentation, improved IDE and tooling support, early bug detection, and increased confidence. They also highlighted the value of advanced features such as protocols, generics, and the ability to inspect annotations at runtime.
On the other hand, respondents identified several challenges, including limited type hinting support in third-party libraries, the complexity of advanced features like generics and decorators, and increased verbosity for complex types. Other pain points included tool fragmentation, the lack of runtime enforcement, and difficulty retrofitting legacy code. Respondents also noted that Python's type system appears less expressive than those of other languages, such as TypeScript, and that its rapid evolution means syntax and best practices are constantly changing.
Another interesting set of findings from the survey concerns ways to improve the Python type system. Several suggestions included features borrowed from TypeScript, such as intersection types, mapped and conditional types, utility types (like Pick, Omit, keyof, and typeof), and better structural typing for dictionaries. Other suggestions focused on better support for generics and algebraic data types, including higher-kinded types; optional runtime type enforcement and performance optimization based on type hints; improved handling of patterns like function wrappers and decorators, support for dynamic attributes; and more.
On the tooling front, MyPy remains the preferred type checker with 58% adoption, closely followed by Pyright/Pylance. New Rust-based type checkers like Pyrefly, Ty, and Zuban are gaining traction, being used by over 20% of respondents. Visual Studio Code is the most common IDE, followed by PyCharm and Vim/Neovim.
There is much more in this survey than can be covered here. Be sure to read the original article for the full details.