The optional type annotations in Python is a big and relatively new thing. For the majority of its life, Python didn’t have any good solution for static type checking, and people coming to the language fell in love with it for different reasons.
Today’s case study: how many old-school Python developers use type annotations? Specifically, we’ll be looking at the core developers because these are mostly people the most dedicated to the language.
TL;DR: Out of all Python core devs ever, about 53% have recent open-source projects, and 39% of them use type annotations. Out of people joining the team in the past 3 years, 76% use type annotations.
The list of core developers
First, we need a list of Python core team members. Not only present but past as well. We don’t want to fall for survivorship bias and miss the people who left because they don’t like the new language direction.
The sources I’ve found:
- devguide.python.org is the best source. It includes names, dates, and GitHub usernames. 188 people.
- github.com has a list of CPython contributors, about 2500 people at the moment who ever changed even a single line of Python code.
- github.com also has a list of the Python org members.
- discuss.python.org list 105 CPython core developers.
Methodology
I open the GitHub page of the person (or find another website they use for hosting open-source projects), find the latest non-fork project, and check if it has type annotations. I look only at projects updated in the past few years. I prefer checking public libraries created for others to use but if there are none, I also check scripts they have for their own use (like a script to deploy a personal blog).
Since the process is manual and tedious and the list is long, I might be wrong in some cases. Contributions are welcome.
The list
Legend:
- β : uses type annotations (in any capacity).
- β: no projects with type annotations.
- π€·: no public projects in the past 5 years.
- ?: no GitHub profile. They might have projects somewhere else.
From new to old:
Name | Joined | Left | |
---|---|---|---|
β | Adam Turner | 2023-10-10 | |
β | C.A.M. Gerlach | 2023-04-19 | |
β | Barney Gale | 2023-03-21 | |
β | Carl Meyer | 2023-02-28 | |
β | Pradyun Gedam | 2023-01-30 | |
β | Shantanu Jain | 2022-12-19 | |
β | Kumar Aditya | 2022-11-21 | |
β | Hugo van Kemenade | 2022-11-21 | |
β | Alex Waygood | 2022-10-18 | |
β | Filipe LaΓns | 2022-10-17 | |
π€· | Erlend Egeberg Aasland | 2022-05-05 | |
β | Jelle Zijlstra | 2022-02-15 | |
β | Dennis Sweeney | 2022-02-02 | |
β | Ken Jin | 2021-08-26 | |
β | Ammar Askar | 2021-07-30 | |
π€· | Irit Katriel | 2021-05-10 | |
β | Batuhan Taskaya | 2020-11-08 | |
β | Brandt Bucher | 2020-09-14 | |
β | Lysandros Nikolaou | 2020-06-29 | |
π€· | Kyle Stanley | 2020-04-14 | |
β | Donghee Na | 2020-04-08 | |
β | Karthikeyan Singaravelan | 2019-12-31 | |
π€· | Joannah Nanjekye | 2019-09-23 | |
β | Abhilash Raj | 2019-08-06 | |
β | Paul Ganssle | 2019-06-15 | |
β | StΓ©phane Wirtel | 2019-04-08 | |
β | Stefan Behnel | 2019-04-08 | |
π€· | Cheryl Sabella | 2019-02-19 | |
β | Lisa Roach | 2018-09-14 | |
β | Emily Morehouse | 2018-09-14 | |
β | Pablo Galindo | 2018-06-06 | |
π€· | Mark Shannon | 2018-05-15 | |
β | Petr Viktorin | 2018-04-16 | |
β | Nathaniel J. Smith | 2018-01-25 | |
β | Julien Palard | 2017-12-08 | |
β | Ivan Levkivskyi | 2017-12-06 | |
β | Carol Willing | 2017-05-24 | |
β | Mariatta | 2017-01-27 | |
β | Xiang Zhang | 2016-11-21 | |
π€· | Inada Naoki | 2016-09-26 | |
π€· | Xavier de Gaye | 2016-06-03 | 2018-01-25 |
π€· | Davin Potts | 2016-03-06 | |
β | Martin Panter | 2015-08-10 | 2020-11-26 |
β | Paul Moore | 2015-03-15 | |
π€· | Robert Collins | 2014-10-16 | |
β | Berker PeksaΔ | 2014-06-26 | |
β | Steve Dower | 2014-05-10 | |
β | Kushal Das | 2014-04-14 | |
π€· | Steven D’Aprano | 2014-02-08 | |
β | Yury Selivanov | 2014-01-23 | |
β | Zachary Ware | 2013-11-02 | |
β | Donald Stufft | 2013-08-14 | |
β | Ethan Furman | 2013-05-11 | |
β | Serhiy Storchaka | 2012-12-26 | |
β | Chris Jerdonek | 2012-09-24 | |
β | Eric Snow | 2012-09-05 | |
? | Peter Moody | 2012-05-20 | 2017-02-10 |
β | Hynek Schlawack | 2012-05-14 | |
? | Richard Oudkerk | 2012-04-29 | 2017-02-10 |
β | Andrew Svetlov | 2012-03-13 | |
β | Petri Lehtinen | 2011-10-22 | 2020-11-12 |
π€· | Meador Inge | 2011-09-19 | 2020-11-26 |
π€· | Jeremy Kloth | 2011-09-12 | |
β | Sandro Tosi | 2011-08-01 | |
β | Alex Gaynor | 2011-07-18 | |
? | Charles-François Natali | 2011-05-19 | 2017-02-10 |
? | Nadeem Vawda | 2011-04-10 | 2017-02-10 |
π€· | Carl Friedrich Bolz-Tereick | 2011-03-21 | |
β | Jason R. Coombs | 2011-03-14 | |
? | Ross Lagerwall | 2011-03-13 | 2017-02-10 |
β | Eli Bendersky | 2011-01-11 | 2020-11-26 |
π€· | Ned Deily | 2011-01-09 | |
β | David Malcolm | 2010-10-27 | 2020-11-12 |
β | Tal Einat | 2010-10-04 | |
β | Εukasz Langa | 2010-09-08 | |
? | Daniel Stutzbach | 2010-08-22 | 2017-02-10 |
π€· | Γric Araujo | 2010-08-10 | |
β | Brian Quinlan | 2010-07-26 | |
β | Alexander Belopolsky | 2010-05-25 | |
β | Tim Golden | 2010-04-21 | |
β | Giampaolo RodolΓ | 2010-04-17 | |
? | Jean-Paul Calderone | 2010-04-06 | 2017-02-10 |
β | Brian Curtin | 2010-03-24 | |
? | Florent Xicluna | 2010-02-25 | 2017-02-10 |
π€· | Dino Viehland | 2010-02-23 | |
β | Larry Hastings | 2010-02-22 | |
β | Victor Stinner | 2010-01-30 | |
π€· | Stefan Krah | 2010-01-05 | 2020-10-07 |
β | Doug Hellmann | 2009-09-20 | 2020-11-11 |
? | Frank Wierzbicki | 2009-08-02 | 2017-02-10 |
β | Ezio Melotti | 2009-06-07 | |
π€· | Philip Jenvey | 2009-05-07 | 2020-11-26 |
β | Michael Foord | 2009-04-01 | |
β | R. David Murray | 2009-03-30 | |
β | Chris Withers | 2009-03-08 | |
β | Tarek ZiadΓ© | 2008-12-21 | 2017-02-10 |
? | Hirokazu Yamamoto | 2008-08-12 | 2017-02-10 |
β | Armin Ronacher | 2008-07-23 | 2020-11-26 |
β | Antoine Pitrou | 2008-07-16 | |
β | Senthil Kumaran | 2008-06-16 | |
? | Jesse Noller | 2008-06-16 | 2017-02-10 |
π€· | JesΓΊs Cea | 2008-05-13 | |
? | Guilherme Polo | 2008-04-24 | 2017-02-10 |
? | Jeroen Ruigrok van der Werven | 2008-04-12 | 2017-02-10 |
β | Benjamin Peterson | 2008-03-25 | |
β | David Wolever | 2008-03-17 | 2020-11-21 |
β | Trent Nelson | 2008-03-17 | 2020-11-26 |
β | Mark Dickinson | 2008-01-06 | |
π€· | Amaury Forgeot d’Arc | 2007-11-09 | 2020-11-26 |
β | Christian Heimes | 2007-10-31 | |
? | Bill Janssen | 2007-08-28 | 2017-02-10 |
? | Jeffrey Yasskin | 2007-08-09 | 2017-02-10 |
? | Mark Summerfield | 2007-08-01 | 2017-02-10 |
π€· | Alexandre Vassalotti | 2007-05-21 | 2020-11-12 |
? | Travis E. Oliphant | 2007-04-17 | 2017-02-10 |
β | Eric V. Smith | 2007-02-28 | |
β | Josiah Carlson | 2007-01-06 | 2017-02-10 |
? | Collin Winter | 2007-01-05 | 2017-02-10 |
? | Richard Jones | 2006-05-23 | 2017-02-10 |
? | KristjΓ‘n Valur JΓ³nsson | 2006-05-17 | 2017-02-10 |
π€· | Jack Diederich | 2006-05-17 | 2020-11-26 |
? | Steven Bethard | 2006-04-27 | 2017-02-10 |
? | Gerhard HΓ€ring | 2006-04-23 | 2017-02-10 |
? | George Yoshida | 2006-04-17 | 2017-02-10 |
β | Ronald Oussoren | 2006-03-03 | |
β | Alyssa Coghlan | 2005-10-16 | |
β | Georg Brandl | 2005-05-28 | |
π€· | Terry Jan Reedy | 2005-04-07 | |
π€· | Bob Ippolito | 2005-03-02 | 2017-02-10 |
? | Peter Astrand | 2004-10-21 | 2017-02-10 |
β | Facundo Batista | 2004-10-16 | |
? | Sean Reifschneider | 2004-09-17 | 2017-02-10 |
? | Johannes Gijsbers | 2004-08-14 | 2005-07-27 |
π€· | Matthias Klose | 2004-08-04 | |
π€· | PJ Eby | 2004-03-24 | 2020-11-26 |
β | Vinay Sajip | 2004-02-20 | |
β | Hye-Shik Chang | 2003-12-10 | |
? | Armin Rigo | 2003-10-24 | 2012-06-01 |
? | Andrew McNamara | 2003-06-09 | 2017-02-10 |
? | Samuele Pedroni | 2003-05-16 | 2017-02-10 |
π€· | Alex Martelli | 2003-04-22 | |
β | Brett Cannon | 2003-04-18 | |
? | David Goodger | 2003-01-02 | 2017-02-10 |
? | Gustavo Niemeyer | 2002-11-05 | 2017-02-10 |
? | Tony Lownds | 2002-09-22 | 2017-02-10 |
β | Steve Holden | 2002-06-14 | 2017-02-10 |
β | Christian Tismer | 2002-05-17 | |
? | Jason Tishler | 2002-05-15 | 2017-02-10 |
β | Walter DΓΆrwald | 2002-03-21 | |
? | Andrew MacIntyre | 2002-02-17 | 2016-01-02 |
β | Gregory P. Smith | 2002-01-08 | |
? | Anthony Baxter | 2001-12-21 | 2017-02-10 |
? | Neal Norwitz | 2001-12-19 | 2017-02-10 |
β | Raymond Hettinger | 2001-12-10 | |
? | Chui Tey | 2001-10-31 | 2017-02-10 |
? | Michael W. Hudson | 2001-08-27 | 2017-02-10 |
? | Finn Bock | 2001-08-23 | 2005-04-13 |
? | Piers Lauder | 2001-07-20 | 2017-02-10 |
π€· | Kurt B. Kaiser | 2001-07-03 | |
? | Steven M. Gava | 2001-06-25 | 2017-02-10 |
? | Steve Purcell | 2001-03-22 | 2017-02-10 |
? | Jim Fulton | 2000-10-06 | 2017-02-10 |
? | Ka-Ping Yee | 2000-10-03 | 2017-02-10 |
β | Lars GustΓ€bel | 2000-09-21 | 2020-11-26 |
β | Neil Schemenauer | 2000-09-15 | |
? | Martin v. LΓΆwis | 2000-09-08 | 2017-02-10 |
π€· | Thomas Heller | 2000-09-07 | 2020-11-18 |
? | Moshe Zadka | 2000-07-29 | 2005-04-08 |
π€· | Thomas Wouters | 2000-07-14 | |
? | Peter Schneider-Kamp | 2000-07-10 | 2017-02-10 |
? | Paul Prescod | 2000-07-01 | 2005-04-30 |
β | Tim Peters | 2000-06-30 | |
β | Skip Montanaro | 2000-06-30 | 2015-04-21 |
? | Fredrik Lundh | 2000-06-29 | 2017-02-10 |
π€· | Mark Hammond | 2000-06-09 | |
β | Marc-AndrΓ© Lemburg | 2000-06-07 | |
? | Trent Mick | 2000-06-06 | 2017-02-10 |
? | Eric S. Raymond | 2000-06-02 | 2017-02-10 |
? | Greg Stein | 1999-11-07 | 2017-02-10 |
? | Just van Rossum | 1999-01-22 | 2017-02-10 |
? | Greg Ward | 1998-12-18 | 2017-02-10 |
β | Andrew Kuchling | 1998-04-09 | |
π€· | Ken Manheimer | 1998-03-03 | 2005-04-08 |
π€· | Jeremy Hylton | 1997-08-13 | 2020-11-26 |
π€· | Roger E. Masse | 1996-12-09 | 2017-02-10 |
β | Fred Drake | 1996-07-23 | |
β | Barry Warsaw | 1994-07-25 | |
β | Jack Jansen | 1992-08-13 | |
π€· | Sjoerd Mullender | 1992-08-04 | 2020-11-14 |
β | Guido van Rossum | 1989-12-25 |
Summary
Numbers:
- Total: 190
- Currently active: 109
- β : 39
- β: 61
- π€·: 36
- ?: 54
All results from old to new:
β π€· β β β π€· π€· π€· β ? ? ? ? ? β π€· ? β β ? ? π€· ? π€· ? β β ? ? ? ? π€· ? ? ? ? β ? ? β ? β ? β β ? ? ? β π€· ? ? ? β β π€· π€· ? ? β ? π€· π€· β β β ? ? ? π€· ? ? ? β β ? π€· ? ? ? β π€· β β β β ? ? π€· ? β β β ? β β β β π€· β ? β π€· β β π€· ? β ? β β β β π€· ? β β β π€· β ? β π€· ? ? β β π€· π€· β β ? β ? β β β β β β β π€· β β β π€· β β π€· π€· π€· β β β β β β β π€· β β β π€· β β β β π€· β β π€· β β β π€· β β β β π€· β β β β β β β β β β
Results from old to new with removed unknowns:
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Results from old to new for currently active members:
β β β β β β π€· β π€· β π€· β β β β β π€· β β π€· β π€· β β β β β β β π€· β β β β β β β β π€· β β β β β π€· β β π€· β π€· β β π€· β β β β β β β β β π€· β β β π€· β π€· π€· β β β β β β β π€· β β β π€· β β β β π€· β β π€· β β β π€· β β β β π€· β β β β β β β β β β
- The total number of Python core devs using type annotations depends on how you count:
- 21% (39/190) if you count unknowns.
- 39% (39/100) if you consider only people with recent open-source activity.
- 35% (38/109) or 44% (38/87) if you count only current team members (including and excluding unknowns).
- 76% (16/21) if you count only people who joined the team since 2020.
- Around 47% ((36+54)/190) of all Python core developers don’t have their own open-source projects and haven’t made any open-source contributions in recent years. Probably, many of them are simply retired; the language is over 30 years old.