Some thoughts:
-
What type checking tools does your project use? (Select all that apply)
- mypy
- pyright
- pytype
- pyre
- typeguard
- pydantic
- typeshed
- Other (please specify)
typeshed
is not a “type checking tool” per se. Most people don’t know what it is, yet all who use type checkers/Pylance/PyCharm/Jedi are already using it.
There are other tools that should be explicitly mentioned as well: Beartype, Pylyzer, Pyanalyze, etc.
- Which IDE do you mainly use?
- VS Code
- PyCharm
- Emac or (Neo)vim/VIM
- Other (please specify)
The “PyCharm” option should also mention other JetBrains IDEs, as they all use the same plugin under the hood.
Vim, Neovim and Emacs should each be listed on its own line. Other IDEs/editors like Visual Studio, Sublime Text, Spyder and VS Codium should also be mentioned.
-
Which IDE plugins/extensions do you use for typing? (Select all that apply)
- MS.Python (pylance/pyright)
- Mypy
- PyCharm defaults
- Not sure
- Other (please specify)
The “Mypy” option could use some clarification. There are two Mypy plugins for PyCharm (three if you count this non-public one), three extensions for VSCode and many others for various editors/IDEs. Remember that there are people who use neither VS Code nor PyCharm. From what I heard, Neovim users love their experience with Pyright.
Just a FYI, I myself wrote two Pyright plugins for PyCharm. They aren’t exactly popular, however, and thus might not worth mentioning.
-
What are your main goals for typing your project? (Select all that apply)
- Preventing bugs
- Documentation
- Runtime guarantees
- Faster code review
- Better IDE support (e.g. autocomplete)
- Other (please specify)
Instead of asking for the “main” goals, respondents should be able to give each choice a score (e.g. from 1 to 5) representing how much it contributes towards the overall usefulness of type hints in their code.
-
Where do you hear about new type system features? (Select all that apply)
- Python version release notes
- Type checker release notes
- PEPs
- Reddit
- Hacker News
- Discord
- Coworkers
- Fellow Pythonistas
- Other (please specify)
This forum, Python YouTubers, Stack Overflow and the @python/typing GitHub repository are four other possible choices.
-
How did you learn to use Python typing? (Select all that apply)
- Online tutorials
- Official documentation
- Blog posts
- Books
- Courses
- Code reviews
- Mentorship from colleagues
- Other (please specify)
Again, Stack Overflow is a likely choice; according to SO’s 2023 survey, 83% of respondents use Stack Overflow as a learning resource. The same survey also shows that three out of every five respondents learn from how-to videos.