Tim Peters (software engineer)

Tim Peters
OccupationSoftware developer
AwardsPSF Distinguished Service Award

Tim Peters is a software developer who is known for creating the Timsort hybrid sorting algorithm and for his major contributions to the Python programming language and its original CPython implementation. A pre-1.0 CPython user, he was among the group of early adopters who contributed to the detailed design of the language in its early stages.[1]

He later created the Timsort algorithm (based on earlier work on the use of "galloping" search)[2] which is used in Python since version 2.3 (since version 3.11 using the Powersort merge policy instead of Timsort's original merge policy[3][4]), as well as in other widely used computing platforms,[5][6][7] including the V8 JavaScript engine powering the Google Chrome and Chromium web browsers, as well as Node.js.[8][9] He has also contributed the doctest and timeit modules to the Python standard library.[10]

Peters also wrote the Zen of Python, intended as a statement of Python's design philosophy, which was incorporated into the official Python literature as Python Enhancement Proposal 20 and in the Python interpreter as an easter egg.[11] He contributed the chapter on algorithms to the Python Cookbook.[12] From 2001 to 2014 he was active as a member of the Python Software Foundation's board of directors. Peters was an influential contributor to Python mailing lists.[13] He is also a highly ranked contributor to Stack Overflow, mostly for answers relating to Python.[14][10]

Peters' past employers include Kendall Square Research.[15][16] Tim Peters was granted the Python Software Foundation's Distinguished Service Award for 2017.[10][13]

On August 7, 2024, Tim Peters was suspended by the Python Steering Council for three months due to alleged violations of the Code of Conduct.[17]

  1. ^ van Rossum, Guido (November 1, 1998). "LJ Interviews Guido van Rossum". Linux Journal (Interview). Interviewed by Andrew Kuchling. United States. Some of the early adopters of the language, such as Tim Peters and Steve Majewski, focused on very subtle design details and helped immensely by clarifying the way various features should work; e.g., they convinced me to support mixed arithmetic.
  2. ^ Peters, Tim. "listsort". Python Software Foundation. Retrieved September 7, 2018.
  3. ^ James, Mike (December 21, 2022). "Python Now Uses Powersort". www.i-programmer.info. Retrieved January 24, 2024.
  4. ^ Commit switching to powersort
  5. ^ "[#JDK-6804124] (coll) Replace "modified mergesort" in java.util.Arrays.sort with timsort". JDK Bug System. Retrieved June 11, 2014.
  6. ^ "Class: java.util.TimSort<T>". Android Gingerbread Documentation. Archived from the original on July 16, 2015. Retrieved February 24, 2011.
  7. ^ "liboctave/util/oct-sort.cc". Mercurial repository of Octave source code. Lines 23-25 of the initial comment block. Retrieved February 18, 2013. Code stolen in large part from Python's, listobject.c, which itself had no license header. However, thanks to Tim Peters for the parts of the code I ripped-off.
  8. ^ V8 release v7.0, Official V8 Blog
  9. ^ Getting things sorted in V8, Official V8 Blog
  10. ^ a b c "PSF Distinguished Service Awards". Python Software Foundation. Retrieved May 24, 2024.
  11. ^ Peters, Tim. "PEP 20 -- The Zen of Python". Python Software Foundation. Retrieved September 7, 2018.
  12. ^ Martelli, Alex; Ascher, David (2002). Python Cookbook (1st ed.). O'Reilly Media. ISBN 978-0-596-00167-4.
  13. ^ a b "The Happy Medium: Distinguished Service Award Winner Tim Peters". Python Software Foundation. July 18, 2018. Retrieved September 7, 2018.
  14. ^ "Tim Peters". Stack Overflow. Retrieved September 7, 2018.
  15. ^ Interview with Tim Peters. July 1, 2012. Event occurs at 2m18s. Tim Peters: Yeah, since '91, so I was working at Kendall Square Research then [...]
  16. ^ Peters, Tim (October 20, 1992). "Livermore Loops coded in C". Netlib. University of Tennessee and Oak Ridge National Laboratory. Retrieved September 6, 2018.
  17. ^ Claburn, Thomas (August 9, 2024). "Core Python developer suspended for three months".