- Where did you grow up? What did your dad do for a living? Mom? Any siblings? - Did you have any mentors or non-family that really helped you along the way while growing up, e.g. teachers? - Where did you go to high school? - Hobbies as a kid? - How did you start getting interested in computers? - Were you interested in electronics? - Did you have any friends as a kid who were also into computers? - Did you go to college? - What was your first job? - What kinds of jobs did you have before you started working at Harley-Davidson? - Can you describe your time at Harley-Davidson? Where was the job? What was your position? How long were you there? - How did your time at HD inform your later career? - Were you much of a biker? - You worked at HD before Cray, presumably. What other jobs did you have between those two? - When did you start working for Cray? Who introduced you to the company? Who interviewed you? What was the process of getting hired like? - Was it Cray Research or Cray Computer or Cray Laboratories or some earlier or later variant? - For a time, IBM bundling hardware and software into lease deals meant that software was "free" and sort of just came along with the hardware lease, in extreme cases, even if it needed to be written from scratch for a single customer. Was this Cray's model too? - Who were Cray's major customers? Government and defense, presumably. Big business? - NEC and Fujisu were competitors to Cray. Did you think of them as your competitors? IBM and DEC and the other US-based mainframe and minicomputer companies? Others? - You're originally from Wisconsin. Cray had a major facility in Chippewa Falls (Seymour's home town). Did you ever work at Chippewa Falls when you were at Cray? - Who were your mentors when you worked at Cray? - Which Cray hardware systems did you have to work on? - Can you describe the process of creating a compiler for a supercomputer? Was it mostly assembler? What instruction sets were you targeting? - What was the development environment like? - What was the work environment like? Did you have an office? - For which languages did you write compilers? - Whom were your coworkers during your compiler writing days? - What operating system(s) were used on the machines you wrote compilers for? - Were you friendly with the hardware engineers? - You had left Cray Research before they were purchased by SGI, presumably? - Cray Research IP was eventually was purchased from SGI by Tera who then rebranded themselves with the Cray name. Who were Tera? - Which modern architectures are most similar to Cray systems? - Which older and forgotten architectures were similar to the systems you used at Cray? Transputer systems? Thinking Machines? - What is the lasting legacy of Cray designs? Paralleism? Out of order execution? Speculative execution? Vector operations? - You once related a story about needing to visit a customer site to debug a compiler problem (when you were with Cray?). Thing was that you didn't have a security clearance, and needed one to enter the physical space that the system was in. And somehow they could only ask you yes or no questions (this may be misremembering). So you sat outside the door on a chair, and they would ask you a yes or no question, get an answer, go back through the door to the system and test something out and come back out with another yes or no question. And over the course of several hours you were able to fix the compiler bug this way. Can you retell this story? - You eventually became (among other things) the "floating point guy" for Python. How did you get this knowledge? - What is the IEEE 754 floating point specification? What was was your relationship with it? - Do you remember the first personal computer you owned? - What did you think of PCs at the time? - When did you first use something that folks might recognize as a precursor to the Internet? - Were there any companies that you worked for between Cray and Dragon Systems? - You worked for a time at Dragon Systems, which (even today?) produces a speech-to-text system for PCs named Naturually Speaking. Speech to text was largely magic at the time you started, or at least niche and novel. Can you tell us how you got this gig? - What was the work environment like? - What was your development environment? - What was the most difficult thing creating speech to text systems? - Did you try to use things like next/prev-word prediction to get accuracy better? - Who were some of your bosses, peers, and/or mentors at Dragon? - When and why did you start using Usenet? - Did your trademark communication style (fractional-winks and 'lys and humor and whatnot) start on Usenet? How did that evolve? Where did it come from? - You once described youself as a Usenet flame-absorber suggesting that you cheerfully behaved as a lightning rod to defuse arguments and disagreements. How did this inform your career? - How did you first hear of Guido van Rossum and Python? - Why did you get as interested as you did in Python in its very early phases, given that it was much simpler and less generally-useful than today's Python? - Python is more or less a "something from nothing" story, delta the influence of ABC on Guido's design sense and CNRI's early stewardship. Was Python the first "something from nothing" project of note that you worked on? The last? - You started to work with Python on version 0.91, before it had seen general release, or at least before it had more than a handful of users. What did Python look like then? - Around how many users of Python were there when you started contributing? - What was your role in very early Python? - Why were you interested in interpreted languages, given your background? - Guido says he was not really aware of LISP when he designed Python, although they share some of the same features (a bytecode interpreter, and a REPL mode). Were you influenced by LISP at all? - How important is the REPL to Python? - When did classes make it into Python? - When did keyword function arguments make it in? - Why ``def`` and not ``func``? - Where were triple-quoted strings stolen from? - Did you care about indentation-based nesting? - One of the best features of Python is exceptions. Instead of your code just segfaulting and giving you a core dump to go examine in a debugger, you will often see a sensible error message dumped to stdout before the interpreter exists. Furthermore, you can catch most errors and handle them with custom code. When did these begin to exist? - Why do you think languages like Go explicitly don't have the same kind of exception handling features? - It is a great idea to allow user-defined objects to play along with operators and display situations and whatnot. Where did the idea of dunder protocols like ``__add__``, ``__repr__`` come from? - Did you have much influence in the design of the bytecode interpreter over time? - How much were you involved over time in the implementation of the Python dictionary code? - Did you have much to do with the Python ``pdb`` debugger? Usually folks implementing a language never really use its debugger. - How did ``doctest`` come to be? - How did comprehensions come to be? - Were you a fan of automated tests in the early days of Python? - How did you make sure that Python got tested on all the platfoms it was destined to be run on? - Given your presumed history with parallel computing, did you ever kick against the GIL? Or were PCs just so unthinkably puny that it seemed pointless at the time? - These days there has been some movement on free-threading by somehow using subinterpreters. Have you been paying any attention to this? - Did you have much to do with the various ``queue`` classes and other synchronization primitives? - Who was responsible for starting comp.lang.python on Usenet? - You are informally known as the Timbot because though you contributed to a lot of Python discussions over the years, nobody in the Python world had actually yet met you in person until relatively late in Python's life. So, many people jokingly made the case that you were a general intelligence AI bot. When was the first time you met someone else who was into Python? - A characteristic of yours that folks find valuable is your lack of pretense and success in maintaining a cheerful attitude during contentious arguments. But you're not much of a pollyanna either, you argue for what you want, asking people for real-world examples of why they might need such a feature, and always keep things grounded in reality rather than letting them escape into some hand-wavy ether, subscribing to a "data wins the day" outlook. Where did this come from? - You wrote the the poem named "The Zen of Python", which is a set of aphorisms that circumscribes some of the core design principles of Python. When you wrote it, youmight not have thought it would be as big of a hit as it has become. How did you start it? How long did it take to write? Are you glad it is part of your legacy? - "Namespaces are one honking great idea". Presumably, this relates to the Python module system, which is by-observation pretty flat, but by-design could be made fairly nested? Which systems that didn't have namespaces contributed to you making this claim? - You created an algorithm for sorting that you put into Python that you called Timsort, which became the default sorting algorithm for things that could be sorted in Python. Descendents are now used by many languages, including at least one JavaScript interpreter, Java, and Swift. How did you get the idea for doing that? What are its benefits? - Other than Timsort and your floating point work, where else did you contribute significantly to the Python codebase? - How did you come to write "spambayes"? - Python 3 made a lot of backwards incompatible changes. IIRC, you took a break while much of that was being shook out. Is there anything you might have done differently if you had possessed the energy to make the upgrade path smoother for existing Python users at the time? - There is a really fun interview of Donald Chamberlin, who was one of the popularizers of SQL. He could not believe that people were *templating* SQL and making dynamic queries. It was a divide by zero error to him. It is clearly popular and de-rigeur these days, even becoming a bit of a science. Is there anything anyone has done with Python that you thought "oh that will never work" and it turned out not only to work but to be very popular and even practical? - For a period of time, you worked with Guido and some other folks as a body you called "Python Labs" across a few organizations. Most of Python Labs were Guido's co-workers from CNRI (Barry Warsaw, Jeremy Hylton, and Fred Drake), except you, is that right? - Can you describe the skills and areas of responsibility of the people on the Python Labs team? - Who were some early Python luminaries other than Guido and other Python Labs folks? - Guido has spoken publicly about a brief stint Python Labs had at BeOpen, which didn't work out. Presumably, that was the first time that you worked with Guido and Python Labs, and you moved fom Boston to Virginia for that. Do you have any thoughts or anecdotes about that? - Presumably, this timeframe had a lot of uncertainty and caused concern for the future. How did you cope with that? - Where in Virginia did you live? Where in Boston did you move from? - When did you first communicate with Jim Fulton (who later went on to co-found Digital Creations)? Did you also communicate with Paul Everitt? - What was your role at Digital Creations / Zope Corporation? - Tres Seaver, a Zope developer, relates a story where you had to fly to Boston for a customer debugging gig and it was right after 9/11. It was a must-fix data-destroying bug so nobody knew how long you'd need to be there. So the head of admin inadvisably bought you a one-way ticket from DIA to BOS. You were detained and searched. Can you tell us that story (Tres apologizes)? - You did a fair amount of work debugging and extending BTrees and other "Zope Object Database" code there, IIRC. You and Jim were usually thick as thieves trying to fix one unlikely bug or another for some time, and you wrote some full-text indexing code. Did you learn anything from that? (All of it still works quite well!) - After you left Zope, who did you end up working for? - IIRC, your OS of choice when we worked together was Windows. Is it still? Which OSes did the rest of PythonLabs use? - Python abstracts away many operating system features. No matter which OS you're running, you can use TCP/IP and even local sockets in the same general way. You can write code that addresses files more or less the same way across operating systems. You can spawn subprocesses in more or less the same way. Was this an explicit design goal or did it just kind of come along for the ride due to how Guido's mind works? - What was the importance of Python being available for almost every microcomputer and workstation operating system? (Windows, the BSDs, Linux, SunOS, MacOS X, other System V-derived like HPUX, AIX, Solaris, Irix, etc plus many others). - You were a Director of the Python Software Foundation for thirteen years between 2001 and 2014. How did this organization form? How did you get that role? - What influence did the PSF organization have on Python? - Have you been to a PyCon or any of its predecessors? - Who is Van Lindberg? - Who is Mark Hammond? - Who is Raymond Hettinger? - Who is Alex Martelli? - Who is Christian Tismer? - Who is Paul Prescod? - You often talk about folks that one might classify as "neurodivergent" (even classifying yourself as a little bit that) in kind ways. What is your take on the importance of neurodivergent people in software? - You were very active on StackOverflow for a period. How did that come about? - What was the last Python release that you were actively involved in? - Does the Python Secret Underground exist? - What do you make of Python's astronomical success as a programming language? Why do you think it became so popular? - Are there any young developers, say, in their 20s, that you've recently taken notice of and think highly of? - You're not as active in Python these days, although you still occasionally advise and participate in design discussions. How would you most like to see Python evolve? - Have you played around with e.g. MicroPython on very small systems? - What do you think of Go? Of Rust? Of Ruby? Of JavaScript? - What is your current editor? - You're now retired. What are your hobbies? - What is Farmville? - Final thoughts?