Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Acquisition Editor: Ben Renow-Clarke
Project Editor: Radhika Atitkar
Content Development Editors: Joanne Lovell
Technical Editor: Gaurav Gavas
Copy Editor: Joanne Lovell
Indexer: Tejal Daruwale Soni
Graphics: Tom Scaria
Production Coordinator: Arvindkumar Gupta
First published: February 2018
Production reference: 2020418
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78839-908-1
www.packtpub.com
"Python" and the Python Logo are trademarks of the Python Software Foundation.
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
- Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
- Learn better with Skill Plans built especially for you
- Get a free eBook or video every month
- Mapt is fully searchable
- Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at
www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
<[email protected]>
for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Welcome, all, to Python Interviews!
People often get confused about open source programming languages, focusing merely on the technology behind the language — be it the language itself, the libraries available for it, or the impressive products that are built with it — and not on the ecosystem of individuals that are responsible for the language existing in the first place.
Python is an open source language, driven mostly by volunteer efforts from all around the globe. It's important to focus not only on the technology behind what makes Python great, but also the individuals that make it great as well.
The world of Python is not one comprised merely of code, but of a community of like-minded individuals coming together to make the world a better place through the open source ethos. Thousands of individuals have contributed towards the success of Python.
This book contains interviews with an excellent selection of the individuals that power Python and its wonderful open source community. It dives into the personal backgrounds of these individuals and the opinions they have about the community, the technology, and the direction we're headed in, together.
But, must importantly — it exposes that Python, the programing language, is indeed comprised of persons, just like you, trying to make a difference in the world, one step at a time.
Kenneth Reitz
Director at Large for the Python Software Foundation
Mike Driscoll has been using Python since April 2006. He blogs for the Python Software Foundation. Other than blogging, he enjoys reading novels, listening to a wide variety of music, and learning photography. He writes documentation for the wxPython project's wiki page and helps wxPython users on their mailing list. He also helps Python users on the PyWin32 list and occasionally the comp.lang.py list too.
Packt is Searching for Authors Like You
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Near the end of 2016, I was brainstorming with my editor about the kinds of books might be of interest. I had been doing a series of articles on my blog called PyDev of the Week that inspired us into crafting a book based on interviewing core members of the Python community. I spent some time hashing out 20 names of people that I thought would be good for the book and then I started contacting them in 2017.
Over the course of about 8-12 months, I ended up interviewing 20 pillars of the Python community, although my list changed several times over that period. Some people weren't available or couldn't be reached. But I persevered and managed to pull together a well-rounded set of representatives of the Python programming community.
In this book, you will get interesting anecdotes about the history of Python and its creators, such as Brett Cannon and Nick Coghlan. You will discover why Python didn't have Unicode support in its first release, and you'll hear from core developers about where they think Python is going in the future. You will also hear from some well-known Python authors, like Al Sweigart, Luciano Ramalho, and Doug Hellman.
I also spoke with some of the creators or core developers of popular third-party packages in Python, such as web2py (Massimo Di Pierro), SQLAlchemy (Mike Bayer), and the Twisted Framework (Glyph Lefkowitz), among others.
My interview with Carol Willing was a lot of fun. She is also a core developer of the Python language itself, so learning her views on women in technology and Python was quite enlightening. She is also a contributor to Project Jupyter, so learning more about that project was exciting.
I think you will find Alex Martelli and Steve Holden's interviews to be especially compelling as they have been working with Python for a very long time and have many interesting insights.
There is a lot to learn from all the individuals that I spoke with. If you happen to know them, you know that even better than I do. All of them were great to chat with and very responsive to me even on the shortest of timelines. If you happen to meet them at a conference, be sure to thank them for their contributions.
Special thanks go out to all the people I interviewed. They took time out of their lives to help me with this project and I truly appreciate it. I also want to thank my editors for keeping this project on track. Finally, I would like to thank my wife, Evangeline, for putting up with me interviewing people at random times throughout the summer. And finally, I want to thank you, dear reader, for checking out this book.
Brett Cannon is a Canadian software engineer and Python core developer. He is a principal software developer at Microsoft, where he works on editing tools. Previous roles include software engineer at Google and creator at Oplop. Brett became a fellow of the Python Software Foundation (PSF) in 2003 and served as a director of the PSF between 2013 and 2014. He is a former PyCon US committee member and was conference chair of PyData Seattle 2017. Brett led the migration of CPython to GitHub and created importlib
. Among his open source achievements is caniusepython3 and he is the co-author of 17 successful Python Enhancement Proposals.
Discussion themes: core developers, v2.7/v3.x, Python sprints.
Catch up with Brett Cannon here: @brettsky
Mike Driscoll: Why did you become a computer programmer?
Brett Cannon: I always found computers interesting, as far back as I can remember. I was lucky enough to go to an elementary school with a computer lab full of Apple IIes, back when that was the cutting edge, so I was exposed to them relatively early on.
In the year between junior high and high school, I took a computer class over the summer and that included a little bit of Apple BASIC. I did it and I excelled at it, to the point that I think I finished the entire class in the first week. It hadn't really clicked that I could do that for a job at that point.
This continued through high school, and then when it came time to pick courses for junior college, my mom had me promise her two things. I agreed that I would take a course in philosophy and I would take a course in computer programming. So that's what I did and I loved both.
Once again, I read my introductory C book in the first two weeks, which was supposed to last for the whole semester. I remember the first time I finished it, I sat down and implemented tic-tac-toe one day after class. I even forgot to eat dinner! It was just one of those eureka moments. The feeling of boundless creativity that this tool provided just engulfed me. That's how I got into programming.
Brett Cannon: 'The feeling of boundless creativity that this tool provided just engulfed me. That's how I got into programming.'
I knew that tic-tac-toe was a solved problem, so I thought that I could actually write the logic so that I could play tic-tac-toe perfectly as a program. I spent something like six hours one evening doing it, and I was utterly blown away that I was actually able to do that. It opened up the possibilities of what computers could do, and the freedom of it and the ability to think about the problems just really grabbed me. I've been doing it ever since.
Driscoll: What led you to becoming so involved with Python and its community?
Cannon: Well, I ended up going to Berkeley and getting a degree in philosophy, but I kept taking computer science courses. The introductory computer science course at Berkeley had an entrance exam, and I was worried that I didn't know object-oriented programming, si...