Acknowledgements of people contributing to Python’s success

Given the recent release of the Python documentary, it seems to me to be a good time to give a small acknowledgement to people that helped make Python successful. I suspect for any documentary that covers such a large community project, a lot of important people got either left out completely or got little coverage. That’s true in this case. I don’t want to criticize the makers of the documentary since given their constraints (e.g. keep it a reasonable length, tell a coherent and interesting story), I think they did a good job. However, since we are celebrating Python’s great success, I think it’d be nice to try to recognize other significant Python contributors.

Below is a list of people that come to my mind. Obviously I’m biased to people I had more direct contact with and I’m also focusing more on the earlier contributions, since the details of “who did what” tends to be forgotten over the years. There are some people who made big contributions but never got much recognition for it. Likely I’m going to forget to include some important people. Sorry for that. I encourage others to respond with their own memories.

In retrospect, I think the people who spent time helping educate new Python users had a large impact (answering questions in forums, writing docs, books, howtos, etc). Of those people, I think Tim Peters and Fredrick Lundh were particularly noteworthy. They both got jokingly designated as “bots”: tim-bot and effbot. The reason was that they responded so quickly, so often, and with so much text that there was just no way that an actual human could be behind that user account. It must be some super advanced computer robot system. Given the current AI systems, being called a bot is probably not the compliment it once was. They were both exceedingly helpful and, while being top experts, also patient with “noob” questions.

Another person designated as a “bot” was Alex Martelli. I had forgotten him when I posted about this on facebook, showing how easy it is to forget someone. Alex was certainly an important actor in the success of Python as I’m sure anyone who was in the community at the time would agree.

Some names that come to my mind (early contributors with impact that I noticed). This set is obviously going to be incomplete and also biased to people I had more direct contact with.

Fred Drake: CNRI employee, was responsible for documentation (written in Latex) in the early days

Jeremy Hylton: CNRI employee, was primarily responsible for the new AST compiler (I think during 2.0 time). He showed up briefly in the doc, was part of the Pythonlabs crew.

Ka-Ping Yee: a fountain of creative ideas. He built the prototype that became Roundup, Python’s issue tracker for many years.

Andrew M. Kuchling (AMK): CNRI employee. I would say his most significant impact (in addition to coding) was his work on howtos and the “what’s new” document

Greg Ward: CNRI employee. He was the primary author of distutils. People can point out lots of flaws with the design at this point but back when he did it, no one was even thinking about the kinds of problems it solves. Very forward looking, IMHO and it did a good job solving a hard problem (building and distribution of Python packages).

Fredrick Lundh: Secret Labs AB. You can search for him to find a summary of his contributions but he was very important in helping make Python successful. Also, a really fun guy, I’m saddened thinking that he’s passed away. Two important things he did: work on the unicode string type in Python 2 and the “re” module.

Marc-André Lemburg: Lots of contributions early on. Heavily involved in the addition of Unicode support in Python 2. Also primarily responsible for the rich comparison system, needed for type/class unification done in Python 2.0.

Jim Fulton: Digital Creations/Zope. His “extension class” code was very important in “healing” the type-vs-class distinction that was fixed in 2.0. I did a lot of work to adapt the extension class code into the 2.0 release but that was mostly mechanical work. The hard problems were solved by Jim. I think ZODB (primarily designed by Jim) also didn’t get near the recognition it should have. It is quite amazing database tech.

Sam Rushing: the originator of asyncio, before we had generators.

Christian Tismer: stackless Python, among other things. The “trashcan” was his design, for example. Both Sam and Christian were “out of the box” thinkers in terms of how languages might work.

David Beazley: I think his biggest impact was being an educator. He promoted Python by showing how to elegantly solve problems with it. He’s also the originator of SWIG. That was used to make a lot of C and C++ libraries usable from Python.

Neal Norwitz: Lots of code contributions to Python in a certain period. He moved on to other things (presumably).

Martin von Löwis: Enormously productive core developer in the early days. Like Neal, presumably moved on to other things (I think teaching).

Mark Hammond: The guy who basically made Python on Windows a thing.

Larry Hastings: Probably most significantly developed “Argument Clinic”. Did a lot of work trying to solve the GIL problem, before Sam Gross finally cracked that one for real. I think Larry’s Gilectomy work at least showed it would be possible, if hard, to remove the GIL.

Jack Jansen: He was basically Mr MacOS Python, in the earlier times

Georg Brandl: Primarily responsible for Sphynx, which still powers Python’s documentation

Mark Dickinson: Along with Tim Peters, one of the people who made Python numerics robust and performant

Alyssa Coghlan: Many decades of contributions. I think her particular strength is a willingness to discuss design proposals, like PEPs, and help achieve a better design through collaboration.

Antoine Pitrou: Long time contributor. I’m most familiar with his work on the GC, giving us safe finalizers for reference cycles, which was a significant improvement and a difficult problem to solve.

49 Likes

Thanks so much for this, @nas! The original version, in a comment on one of my Facebook posts, is pretty much already lost to history :frowning:.

I wonder if it would be possible to set this up as a kind of Wiki people could update, and where anyone could add to it (I believe the “Committers” category here is restricted for posting to core devs), You yourself added some highly worthy names since your Facebook comment.

I, of course, heartily endorse all your suggestions. But there are some changes I’d make. For example,

  • Jeremy Hylton also implemented nested scopes, a substantial piece of delicate work that pretty much worked perfectly out of the box. The lack of nested scopes had proved to become a major sticking point for wider adoption. I could have lived without it, and Guido really didn’t want it (it’s usually easy enough to get much the same effects via explicit classes working with instance variables). I still recall the private email exchange in which we agreed to give up on this aspect of “flat is better than nested”. In hindsight, I use them a lot now. So I’m glad Guido gracefully yielded to public pressure in this case.

  • Mark Dickenson’s numeric contributions can’t be overstated. While I know a whole lot about IEEE-754, I had no passion for doing the work to try to conform to it. For example, I didn’t care enough about correctly-rounded-in-all-cases string<->intfloat conversions to put much of any effort into it. Mark did, and it was a major effort to get that all working exactly right.

  • But Mark really wasn’t an “early” contributor. IIRC, he became a core dev in 2008. It the scope extends to such a “recent” date, then, e.g., the omission of Raymond Hettinger is inexplicable (who was a core dev at least 5 years before Mark).

  • A glaring omission is Neil Schemenauer. You were never a self-promoter, and IMO never got as much credit as you deserved. But your work on, e.g., cyclic gc and generators was very important and truly world-class. And you were there even before Raymond :wink:.

And so on. But I’ll stop now :smiley:.

22 Likes

A few additions from the very early days.

  • Paul Dubois, researcher (manager?) at LLNL, who picked Python to replaces a home-grown scripting language to drive large numeric C++/Fortran libraries. Paul hosted the 4th Python workshop at LLNL.
  • Don Beaudry. Attended the first workship in 1994. A prolific coder of a very early proprietary library. He invented something that for a long time was called the “Don Beaudry Hack” and then promoted to “Don Beaudry Hook”, whereby a class statement could be abused if the first base class override a certain interface. This led to the unification of types and classes in Python 2.2, and his invention is now known as metaclasses.
  • Lance Ellinghaus. Very active on the mailing list during the ‘90s, and author of the original ‘curses’ bindings.
  • Amrit Prem, the author of lambda, filter, map and reduce. He sent me a complete, working patch that I just applied and made part of version 1.0 of the language (1994). I recall him also being active on the list, though not for how long.
  • Aaron Watters. Also an active question-answerer on the list and a heavy Python promoter (notably for cientific and network programming), and co-author of one of the the first two Python book ever published (“Internet Programming with Python”, MIS:Press 1996).
  • Jim Ahlstrom, co-author of the same book. (While I was listed as an author, I didn’t contribute anything. :slight_smile: ) He was quite active in the mid ‘90s and local to the PythonLabs folks; I believe he was involved in the original creation of the Python Software Activity (mentioned in the film).
  • Mark Lutz, author of the O’Reilly hit “Programming Python” (O’Reilly 1996), the other book.

Hopefully others can provide some more color for the following:

  • Raymond Hettinger.
  • Greg Stein.
  • Moshe Zadka.
  • Konrad Hinsen (briefly mentioned in the film).

Let’s also not forget Michael Foord – not super early but developed the various Mock libraries and ran the early Language Summits (with Barry).

Tim, I need your help recalling the name of another early active guy. IIRC he had a Scandinavian name, was a chain smoker, often contrarian, and at some point he died. Would be nice to honor him here.

A few notes on Neil’s and Tim’s notes:

  • Ping was author of several key PEPs, including an early one about the iterator protocol and the one proposing nonlocal, as well as one about exception chaining. All features we just take for granted. He appears in the film on the PythonLabs photo, all the way on the right.
  • IIRC Mark Hammond [corrected] did not create WinPython (I believe we did at CWI, where I had experience building for Windows from my work on ABC?) but he definitely wrote the libraries that made it useful, providing bindings to all the win32 APIs.
19 Likes

Two more:

  • Jim Hugunin. MIT ABD, created Jython and Numeric Python, then IronPython. Spent a few years with us at CNRI.
  • David Ascher. Super friendly guy, worked on rich comparisons and other topics.
14 Likes

Doesn’t ring a bell. However, as the documentary pointed out, it was years & years before I met anyone else using Python, so “chain smoker” is something I wouldn’t have known about one way or the other.

However, my confidence in bots is unbounded, having been one myself. So I asked GPT-5. If the answer it gave me is right, I’ll be both astonished and deeply frightened <0.5 wink>:

I do recognize the name, but have no memory of him connected specifically to Python.

Do you?

2 Likes

Wow, this stuff is so easy to forget. I’ve thought of Paul a dozen times since the film came out, but it always escaped me when it came to type something. Yes, Paul was a true groundbreaker in the area of using Python to help drive dead-serious scientific computing.

I believe you’re thinking of Mark Hammond here. A distinction is needed: Python for DOS was always “a thing”, and so also for Windows through 3.1 (a graphical layer on top of DOS)

But the win32 API didn’t exist before Windows NT, and didn’t reach consumer boxes before Windows 95. In some ways that was a very different universe than DOS, and Mark Hammond was crucial in making Python play well with it.

Because Microsoft used to take “backwards combability” very seriously, through Windows XP a great many programs written for 16-bit DOS still worked OK on the later 32-bit OSes, but they needed reworking to work really well on the far more capable newer hardware.

Mark did that work for Python. CWI did not, unless someone was abusing your time machine :wink:.

4 Likes

I don’t think it was Erik, though who knows. I thought one of the names started with ‘A’. I recall specifically that you were the one to post the news of his death, and that you mentioned his chain smoking (IIRC you smoked too and that created a bond despite not having met in person?). But maybe it wasn’t on one of the lists. GPT-5 doesn’t seem to know of deaths announced before Effbot’s. This person was active and I think died in the late 1990s or maybe early 2000s.

1 Like

There’s also several people who participated in the “Need for Speed” sprint in Iceland. (This list courtesy GPT-5.)

  • Steve Holden. Big organizer and fan.
  • Georg Brandl. Big technical contributions.
  • Richard Jones. Later PyGames developer.
  • Bob Ippolito.
  • Jack Diederich. Not a fan of Python 3 IIRC.
  • Andrew Dalke.
  • Sean Reifschneider.
  • Kristján Valur Jónsson. (Lead engineer on the game “Eve”, with Christian Tismer.)

Some more attendees that I don’t remember:

  • Martin Blais.
  • Richard M. Tew.
  • Runar Petursson.
  • John Benediktsson.
  • Richard Emslie.

Wasn’t David Mertz also there? And Raymond Hettinger?

A few more participants in the first ever Python workshop at NIST:

  • Skip Montanaro. (Came back a few years ago after retirement.)
  • Steve Majewski. He created the T-shirt and was a big community promoter.

And as long as we mention Laura Creighton, doesn’t Anna Ravenscroft also deserve a mention? I remember fondly her running the early lightning talks.

6 Likes

I was there. David was not. Raymond worked for the high-frequency trading firm that funded that sprint, but remained in the US, and showed up only for a brief video call. Wearing “Mister Spock” ears in a Star Trek uniform - it was hilarious :smile:.

The people whose names you didn’t recognize with names ending in “sson” were almost certainly native Icelanders working for the company that released “Eve”.

David deserves some mention too anyway. He contributed in ways other than code. Board member, over a dozen yeers on the PSF Trademarks Committee, early advocate for increasing diversity, helped get PyLadies off the ground, prolific trainer in scientific applications, prollific author, and wrote the highly influential (at the time) “Charming Python” column for IBM developerWorks.

I mentioned him at the start of the recycled video of me in the film. He was very active on the early mailing list too. I first heard about Python from him. Our various dissatisfactions with then-current languages drove us to try out all sorts of weird new languages, and Steve and I first met on the Icon Usenet group (Icon was the proximate inspiration for Python’s generators). The three of us had massive email discussions about design at the start, but for whatever reason(s) he eventually dropped out of those. I haven’t heard from in many years now.

I recalled Laura in my Facebook post (in a reply to one of Neil’s comments) as someone who absolutely deserved recognition if the scope expanded beyond core devs. The founder of AB Strakt and of the Python Business Forum, she seems almost entirely forgotten today, but she was a true pioneer too. I also counted her as being a buddy - we got along very well, and had fun typing at each other :smile:.

And if the scope expands, absolutely Anna too.

5 Likes

I’m not sure if any of the other mentioned characteristics line up, but “early Python contributor who has since died, not yet mentioned here” and “name starts with A” reminds me of Aahz.

4 Likes

Nice try, but almost certainly not Aahz. I don’t think he smoked,“Aahz Maruch” doesn’t sound Scandinavian, “often contrarian” doesn’t fit at all, and I wasn’t the one who announced his death. I don’t know what his birth name was, but his parents were Mel and Aviva Bernstein.

Despite that Guido dropped more clues, none of those rang a bell with me either. The only Python person I recall bonding with over smoking is Alex Martelli, who I know for a fact was still alive a few days ago :smile:.

3 Likes

Maybe worth trying, maybe not. Neil, as the post author, you should be able to turn your post into a “Discourse Wiki” like so:

  • Click on the wrench icon at bottom right.
    – You may need to click on the “…” icon to find that, though.
  • Select “Make Wiki”

That’s it. Then anyone can edit. I’ve never tried it. Some cautions from reading about it:

  • There’s no serious support for simultaneous edits. If two people edit at the same time, only one person’s changes will survive: the last one to save. The version by the first to save should still be available from the edit history, but Discourse makes no attempt to merge the changes (let alone detect conflicts).

  • You apparently can’t “take back” an attempt to make a wiki, although someone with admin status can. In that case it becomes a regulat post again, with the full edit history intact, but I couldn’t find any info about whether your original authorship is retained.
    – Although that appears to be out of date. It looks like I can “take it back”, via following the first step above, but clicking on “Remove WikI” instead. But whether or not that’s because I converted to a wiki to begin with remains unknown. Can anyone else get to a “Remove Wiki” option?

I’ll convert this msg into a wiki right after posting it. Then we can play with it in a context where things going wrong makes no difference.

OK, this post is “a wiki” now. Everyone should see a new “Edit” button on the bottom right, and anyone should be able to make their own changes to it. Play with it, if you like!


Kilroy was here.

2 Likes

Fantastic additions, thanks!

I didn’t forget about Raymond, I just figured he is already Internet famous. :wink: He certainly has my thanks since I use many things he built, masterfully crafted and exquisitely documented. He’s also one of those people that made an impact due to educating so many new Python users.

For Jeremy I was planning to mention something about nested scopes since I recalled he was primarily responsible for getting them it work. He was one of those people that had Scheme warp his mind. :wink: Some background for others: Python used to generate bytecode (via the code generator) directly from the concrete syntax tree. That was built by Guido and a tidy piece of work.

However, working with the concrete syntax tree was difficult and the compiler was hard to enhance. The solution, as it often is, at least according to Tim, was to add another pass to the compiler. I think Tim had a joke like every compiler has at least as many passes as the number of people who worked on it.

So, a new pass was added to first convert the concrete syntax tree to an abstract syntax tree (AST). I believe the AST related code written then, primarily by Jeremy, still mostly survives. So it was quite a nice foundation. One of my favorite memories of a PyCon sprint session was working on finishing off the AST-based compiler. I had never worked on a “real” compiler before and I was surprised how straight-forward it actually was (likely helped by a good foundational design done by Jeremy).

4 Likes

IMO no part of Python is “real”. It’s all toy implementations written to understand how a particular piece of technology could be implemented cleanly. (0.5 wink)

FWIW, and now rapidly getting OT, that AST design still exists, even though the compiler front-end uses completely new tech (PEG, also implemented as a toy, at least initially). I wanted to stick to the principle of “change only one thing at a time” so I made a hard rule that the AST produced by the parser should be identical to the parser produced by the old parser. This worked beautifully, and hence we could always know that if there was an issue, it was in the PEG parser or AST creator, not any changes to the AST (because there weren’t any).

9 Likes

I hope you realize that there are 20 bullet points in the so-called “Zen of Python”. But I only filled in 19 of them, leaving the 20th for you to reveal yourself. Have at it. I’ll only advise that “change only one thing at a time” is too clear to fit in :wink:.

8 Likes

Hoping to rehabilitate the reputation of fellow bots, I asked GPT-5 more focused questions. Now I have no idea what to think :wink:.

However, I have no memory of that, and in a series of follow-up questions GPT5 was unable to locate any such post. I couldn’t find one “by hand” in the python.org python-dev archives either.

I do remember Skaller, though. No idea whether he smoked. He was a functional language fan, and was unhappy with (among other things) Python’s scoping. He created a Python variant - Vyper (not to be confused with the far more recent language of that name from the blockchain world) - to fix your mistakes :wink:.

But the python-dev archives only find 15 total messages containing his surname. Maybe he was more active before python-dev came into existence?

Regardless, I only used to be a bot. I’m more than just a little bit human now, and need to go to sleep :wink:.

EDIT, and off-topic: I have sometimes been very impressed with GPT-5’s responses to tech questions. At times it’s really like chatting with a knowledgeable colleague. For example, I asked it whether Python’s dict collision resolution scheme was any good, and it demonstrated near-total knowledge of how and why it worked, and created illuminating concrete examples of how it works, on the fly. It also correctly stated that it’s much better than most people think it is at first. Which I took as a compliment: one of the reasons I switched from a scheme based on the theory of finite fields over polynomials with coefficients in GF(2), to one that used a very simple linear congruential PRNG, is that people would find the latter much easier to understand. If they mistake ease of understanding for naivety, my goal with that was achieved :smile:.

5 Likes

I am now 99% sure I was thinking of Arthur Siegel. Author of PyGeo and VPython, died 2007. A bit later than I remember but that’s human memory for ya.

And yes, Gpt5 found this for me, once I fed it the name Arthur.

PS. I will leave the zen unfinished. There must be some art theory about how unfinished things are special.

12 Likes

One person (or group of people) who made a significant difference in the early days was whoever set up the original Cheeseshop (or whatever it was called before then - I can vaguely recall what the site looked like, but I don’t remember its name). I don’t know who that was, but I do remember how great it was to be able to find “useful stuff” without hunting all over the web. That, combined with distutils making it easy to build packages, was a game changer for me.

8 Likes

Indeed, memory is not a passive recording device. It’s plastic, an active participant in shaping the stories we tell ourselves, and subject to change over time. While it seems little known, “eyewitness testimony” is viewed as about the lowest quality evidence among people who study such stuff, although “just folks” find it compelling.

In turn, I’m 99% sure I never had significant interactions with Arthur, and 100% sure I didn’t post about his death. His surname isn’t found at all in the python-dev archives. VPython does, but seemingly to a different project of the same name.

Arthur appeared to be far better known on the Edu-SIG mailing list, where his death was announced:

3 Likes

You might be thinking of Richard Jones (who also attended the Need for Speed sprints).

This also starts to dovetail into packaging, which then brings in people like Ian Bicking, PJE, Tarek Ziade, etc.

4 Likes