PyDev of the Week: Brett Cannon

This week we welcome Brett Cannon (@brettsky) as our PyDev of the Week. He is a Python core developer (since 2003!) and a Python blogger. Brett has been a speaker at PyCon for several years. You can check out some of his talks on YouTube (for example How to make your code Python 2/3 compatible). I’m pretty sure I’ve seen one or two of his talks myself and they were always pretty good. Let’s take a few moments to get to know Brett better.


Can you tell us a little about yourself (hobbies, education, etc):

My name is Brett Cannon and I live in Vancouver, Canada with my wife Andrea and our cat. I currently work for Microsoft on the Python team in the Data + Analytics group in Azure.

Education-wise, I have a bachelors degree in philosophy from UC Berkeley, a masters in computer science from Cal Poly San Luis Obispo, and a Ph.D. in computer science from the University of British Columbia (where I met my wife). I actually joined the python-dev mailing list the month following my graduation from Cal and became a member of the Python development team during my year off between my bachelors and masters, so the Python community saw me through grad school. 🙂

In terms of hobbies, contributing to Python is probably the biggest (yes, I have an addiction problem :). I also enjoy watching movies and select TV shows with my wife (proud cable-never household). And when the Vancouver weather allows for it, I enjoy going for a stroll to clear my head (preferably in nature, but also happy to just walk around my neighbourhood). Otherwise I just read a lot online.

Why did you start using Python?

While I majored in philosophy at UC Berkeley, I originally wanted to double-major in both philosophy and computer science (unit cap issues prevented that). Since I couldn’t pull off the double major I figured I would take as many CS courses as possible. At the time, Cal’s intro CS course had an entrance exam, and I figured I should just learn as much programming as I could upfront to help my chances of getting into the class; this was in the fall of 2000. Object-oriented programming was a thing I knew I should probably learn, but I didn’t have any background in it since all I knew was C.

When I went looking for an OO language to learn, I came across Perl and Python. I kept reading things saying that Perl should be like the sixth language you learn, while people were saying Python was used to teach people programming. That made the decision obvious which language to learn and I haven’t looked back since.

What other programming languages do you know and which is your favorite?

I’m actually a bit of a language nut, so the list can be long depending on your definition of “know” 🙂 . If you restrict to languages that I would feel comfortable answering technical questions about, I would have to say C, C++, Go, Java, Dart, JavaScript, and TypeScript. Out of that list, I would have to put probably Dart or TypeScript as my favourites.

What projects are you working on now?

Work-wise that I can talk about, I’m working on Pyjion with my co-worker Dino Viehland. It’s an experiment to see if adding a JIT to CPython is worth it (early days, but hopefully our talk will get accepted for PyCon US 2016 so we can give an update there). I also help out with our cloud-hosted Jupyter Notebook service .

In terms of Python itself, the biggest one is the migration of Python to GitHub. Details on how that went down can be read on my blog. I also have some programming goals for Python this year, but we will see if the GitHub migration doesn’t eat up all of my Python time.

Which Python libraries are your favorite (core or 3rd party)?

I’m going to cheat and say PyPI (which is pronounced “Pie-Pea-Eye” and not “pip-ee”, or “pie-pea”, or “pie-pie”; you can also call it by its original name, the Cheeseshop). Having a single repository where everyone puts their code has been so beneficial to getting the community to grow. I still remember back in the day when I looked at CPAN over in the Perl community with envy. Things are obviously different now. 🙂

Where do you see Python going as a programming language?

Same as it has over the past 25 years; onwards and upwards. 🙂

What is your take on the current market for Python programmers?

It seems healthy to me. My job hunt after PyCon US 2015 went well, so at least my personal experience was positive. I think it helps greatly that Python is used in so many different fields, expanding the potential market outside of any specific niche.

Is there anything else you’d like to say?

Just thanks to the Python community for being so amazing! I wrote a blog post about how I stay happy in open source and it largely comes down to this community and the people within it.

Oh, and use Python 3. 😉