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:

NameJoinedLeft
βœ…Adam Turner2023-10-10
❌C.A.M. Gerlach2023-04-19
βœ…Barney Gale2023-03-21
βœ…Carl Meyer2023-02-28
βœ…Pradyun Gedam2023-01-30
βœ…Shantanu Jain2022-12-19
βœ…Kumar Aditya2022-11-21
βœ…Hugo van Kemenade2022-11-21
βœ…Alex Waygood2022-10-18
βœ…Filipe LaΓ­ns2022-10-17
🀷Erlend Egeberg Aasland2022-05-05
βœ…Jelle Zijlstra2022-02-15
❌Dennis Sweeney2022-02-02
βœ…Ken Jin2021-08-26
βœ…Ammar Askar2021-07-30
🀷Irit Katriel2021-05-10
βœ…Batuhan Taskaya2020-11-08
βœ…Brandt Bucher2020-09-14
βœ…Lysandros Nikolaou2020-06-29
🀷Kyle Stanley2020-04-14
βœ…Donghee Na2020-04-08
❌Karthikeyan Singaravelan2019-12-31
🀷Joannah Nanjekye2019-09-23
❌Abhilash Raj2019-08-06
βœ…Paul Ganssle2019-06-15
❌Stéphane Wirtel2019-04-08
❌Stefan Behnel2019-04-08
🀷Cheryl Sabella2019-02-19
❌Lisa Roach2018-09-14
❌Emily Morehouse2018-09-14
❌Pablo Galindo2018-06-06
🀷Mark Shannon2018-05-15
βœ…Petr Viktorin2018-04-16
❌Nathaniel J. Smith2018-01-25
βœ…Julien Palard2017-12-08
βœ…Ivan Levkivskyi2017-12-06
❌Carol Willing2017-05-24
❌Mariatta2017-01-27
❌Xiang Zhang2016-11-21
🀷Inada Naoki2016-09-26
🀷Xavier de Gaye2016-06-032018-01-25
🀷Davin Potts2016-03-06
❌Martin Panter2015-08-102020-11-26
βœ…Paul Moore2015-03-15
🀷Robert Collins2014-10-16
❌Berker Peksağ2014-06-26
❌Steve Dower2014-05-10
βœ…Kushal Das2014-04-14
🀷Steven D’Aprano2014-02-08
βœ…Yury Selivanov2014-01-23
❌Zachary Ware2013-11-02
βœ…Donald Stufft2013-08-14
❌Ethan Furman2013-05-11
βœ…Serhiy Storchaka2012-12-26
❌Chris Jerdonek2012-09-24
❌Eric Snow2012-09-05
?Peter Moody2012-05-202017-02-10
βœ…Hynek Schlawack2012-05-14
?Richard Oudkerk2012-04-292017-02-10
βœ…Andrew Svetlov2012-03-13
❌Petri Lehtinen2011-10-222020-11-12
🀷Meador Inge2011-09-192020-11-26
🀷Jeremy Kloth2011-09-12
❌Sandro Tosi2011-08-01
❌Alex Gaynor2011-07-18
?Charles-François Natali2011-05-192017-02-10
?Nadeem Vawda2011-04-102017-02-10
🀷Carl Friedrich Bolz-Tereick2011-03-21
βœ…Jason R. Coombs2011-03-14
?Ross Lagerwall2011-03-132017-02-10
❌Eli Bendersky2011-01-112020-11-26
🀷Ned Deily2011-01-09
❌David Malcolm2010-10-272020-11-12
βœ…Tal Einat2010-10-04
βœ…Εukasz Langa2010-09-08
?Daniel Stutzbach2010-08-222017-02-10
πŸ€·Γ‰ric Araujo2010-08-10
βœ…Brian Quinlan2010-07-26
❌Alexander Belopolsky2010-05-25
❌Tim Golden2010-04-21
❌Giampaolo Rodolà2010-04-17
?Jean-Paul Calderone2010-04-062017-02-10
❌Brian Curtin2010-03-24
?Florent Xicluna2010-02-252017-02-10
🀷Dino Viehland2010-02-23
❌Larry Hastings2010-02-22
❌Victor Stinner2010-01-30
🀷Stefan Krah2010-01-052020-10-07
❌Doug Hellmann2009-09-202020-11-11
?Frank Wierzbicki2009-08-022017-02-10
❌Ezio Melotti2009-06-07
🀷Philip Jenvey2009-05-072020-11-26
βœ…Michael Foord2009-04-01
❌R. David Murray2009-03-30
βœ…Chris Withers2009-03-08
❌Tarek Ziadé2008-12-212017-02-10
?Hirokazu Yamamoto2008-08-122017-02-10
❌Armin Ronacher2008-07-232020-11-26
❌Antoine Pitrou2008-07-16
❌Senthil Kumaran2008-06-16
?Jesse Noller2008-06-162017-02-10
🀷Jesús Cea2008-05-13
?Guilherme Polo2008-04-242017-02-10
?Jeroen Ruigrok van der Werven2008-04-122017-02-10
❌Benjamin Peterson2008-03-25
❌David Wolever2008-03-172020-11-21
❌Trent Nelson2008-03-172020-11-26
❌Mark Dickinson2008-01-06
🀷Amaury Forgeot d’Arc2007-11-092020-11-26
❌Christian Heimes2007-10-31
?Bill Janssen2007-08-282017-02-10
?Jeffrey Yasskin2007-08-092017-02-10
?Mark Summerfield2007-08-012017-02-10
🀷Alexandre Vassalotti2007-05-212020-11-12
?Travis E. Oliphant2007-04-172017-02-10
❌Eric V. Smith2007-02-28
❌Josiah Carlson2007-01-062017-02-10
?Collin Winter2007-01-052017-02-10
?Richard Jones2006-05-232017-02-10
?KristjΓ‘n Valur JΓ³nsson2006-05-172017-02-10
🀷Jack Diederich2006-05-172020-11-26
?Steven Bethard2006-04-272017-02-10
?Gerhard HΓ€ring2006-04-232017-02-10
?George Yoshida2006-04-172017-02-10
βœ…Ronald Oussoren2006-03-03
❌Alyssa Coghlan2005-10-16
❌Georg Brandl2005-05-28
🀷Terry Jan Reedy2005-04-07
🀷Bob Ippolito2005-03-022017-02-10
?Peter Astrand2004-10-212017-02-10
❌Facundo Batista2004-10-16
?Sean Reifschneider2004-09-172017-02-10
?Johannes Gijsbers2004-08-142005-07-27
🀷Matthias Klose2004-08-04
🀷PJ Eby2004-03-242020-11-26
❌Vinay Sajip2004-02-20
❌Hye-Shik Chang2003-12-10
?Armin Rigo2003-10-242012-06-01
?Andrew McNamara2003-06-092017-02-10
?Samuele Pedroni2003-05-162017-02-10
🀷Alex Martelli2003-04-22
βœ…Brett Cannon2003-04-18
?David Goodger2003-01-022017-02-10
?Gustavo Niemeyer2002-11-052017-02-10
?Tony Lownds2002-09-222017-02-10
βœ…Steve Holden2002-06-142017-02-10
❌Christian Tismer2002-05-17
?Jason Tishler2002-05-152017-02-10
❌Walter Dârwald2002-03-21
?Andrew MacIntyre2002-02-172016-01-02
βœ…Gregory P. Smith2002-01-08
?Anthony Baxter2001-12-212017-02-10
?Neal Norwitz2001-12-192017-02-10
βœ…Raymond Hettinger2001-12-10
?Chui Tey2001-10-312017-02-10
?Michael W. Hudson2001-08-272017-02-10
?Finn Bock2001-08-232005-04-13
?Piers Lauder2001-07-202017-02-10
🀷Kurt B. Kaiser2001-07-03
?Steven M. Gava2001-06-252017-02-10
?Steve Purcell2001-03-222017-02-10
?Jim Fulton2000-10-062017-02-10
?Ka-Ping Yee2000-10-032017-02-10
❌Lars GustÀbel2000-09-212020-11-26
❌Neil Schemenauer2000-09-15
?Martin v. LΓΆwis2000-09-082017-02-10
🀷Thomas Heller2000-09-072020-11-18
?Moshe Zadka2000-07-292005-04-08
🀷Thomas Wouters2000-07-14
?Peter Schneider-Kamp2000-07-102017-02-10
?Paul Prescod2000-07-012005-04-30
❌Tim Peters2000-06-30
❌Skip Montanaro2000-06-302015-04-21
?Fredrik Lundh2000-06-292017-02-10
🀷Mark Hammond2000-06-09
❌Marc-André Lemburg2000-06-07
?Trent Mick2000-06-062017-02-10
?Eric S. Raymond2000-06-022017-02-10
?Greg Stein1999-11-072017-02-10
?Just van Rossum1999-01-222017-02-10
?Greg Ward1998-12-182017-02-10
❌Andrew Kuchling1998-04-09
🀷Ken Manheimer1998-03-032005-04-08
🀷Jeremy Hylton1997-08-132020-11-26
🀷Roger E. Masse1996-12-092017-02-10
❌Fred Drake1996-07-23
❌Barry Warsaw1994-07-25
❌Jack Jansen1992-08-13
🀷Sjoerd Mullender1992-08-042020-11-14
βœ…Guido van Rossum1989-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.