Chapter 3. Carol Willing

Carol Willing

Carol Willing is an American software developer and former director of the Python Software Foundation. For the last seven years, she has provided open source software and hardware development for Willing Consulting. Carol is a geek in residence at Fab Lab San Diego, a non-profit education center. She is a core developer for CPython and helps to organize both PyLadies San Diego and the San Diego Python User Group. Carol is also a research software engineer for Project Jupyter and an active contributor to open source Python projects. She is passionate about teaching tech as a speaker and writer.

Discussion themes: CPython, Jupyter, the PSF.

Catch up with Carol Willing here: @WillingCarol

Mike Driscoll: Could you give me a little background information about yourself?

Carol Willing: I am someone who got involved in computing in elementary school back in the 70s. I actually grew up in the shadow of Bell Labs. In a similar way to the Python community, they had outreach for young coders.

Then I had the opportunity in middle school to continue programming on the first TRS-80 and an Apple II. I always liked programming because it was about exploring something new. There was no internet then, so you pretty much just had the source code and some slim bit of documentation. You were the explorer of the computer, if you will. So it was really fun.

After that I got a degree in electrical engineering. While I was in college, I had the opportunity to run the cable television station on campus. I got to learn the technical side, as well as how to motivate people who were volunteers.

I really didn't work as an engineer until about six years into my career. I took a long break from work, but the whole time I was doing things like building a Linux network in my house. I decided that I really wanted to go back and do the development side, because that was what really rocked my world. I had an opportunity to work on the Jupyter team and that's what I'm doing now.

Driscoll: How did you go from being an electrical engineer back to programming? I know a lot of electrical engineers are more hardware oriented.

Willing: Well, I still have a real love for hardware and things like MicroPython and CircuitPython. That still interests me quite a bit, but I like the puzzle of programming.

Carol Willing: 'I like the puzzle of programming.'

I think my first love was math and actually programming. The electrical engineering stuff that I liked to do was the digital communications theory. So it was really more math and software development than it was actually the hardware stuff.

Driscoll: How did you end up using Python, instead of Ruby or some other language?

Willing: Well, I had done C++, Java, and Ruby in the early Rails days. Then when I was looking seriously at computer languages, I realized that I was actually looking for a tech community that I would enjoy being in.

In Southern California, we have a lot of opportunities for meetups. For a while I dabbled in the Linux community. Then I actually started working with some people from OpenHatch on teaching people how to get involved in open source.

The more that I played around with Python, the more I started really enjoying the readability of it. Python made it easy to get things done and there were vast libraries out there. So that was my route to Python. It was a nonlinear path to the world of Python, but a good path.

Driscoll: Could you explain how you became a core developer of Python?

Willing: Yes, I got involved with organizing some of the talks and tutorials for PyCon several years ago. I attended, and it was surprising to me how many developers there were at the CPython sprints, but how few were women.

Carol Willing: 'It was surprising to me how many developers there were at the CPython sprints, but how few were women.'

Nick Coghlan, and a couple of other people, were explaining to me how things worked. I felt that we needed better outreach, so I did a lot of work with the Python Developer's Guide and also outreach within the PyLadies community. I worked with Nick and Guido van Rossum on how we could better document what we were doing and make it more accessible. So that was the way that I became a core developer.

Jupyter relies really heavily on Python 3. So I think there's a strong need for voices from outside of the web community to also give back to the core language. I think that Python is a great language and there's so much opportunity. Even though Python has been around for 20 years, I think we've barely scratched the surface of where this language can take us.

Carol Willing: 'Even though Python has been around for 20 years, I think we've barely scratched the surface of where this language can take us.'

Driscoll: So what parts of the library are you in charge of? What do you do as a core developer?

Willing: Right now, I'm mostly working on documentation and development tools guides. I also mentor some people in the community that are getting started developing with Python, or Core Python.

I get involved with things that we rely heavily on in Jupyter, like asynchronous stuff. If I had more time then I would be more involved on the CPython side. Right now, though, Jupyter has been growing in leaps and bounds, so it has kept us a little busy.

I also really love getting involved with education. I think that if you can make a language accessible to people, then you get lots of great ideas. That's part of the power of all the libraries that are out there in Python.

Driscoll: So what are you doing at the moment with the Python Software Foundation (PSF)?

Willing: I have just served two years as a director of the PSF. Right now, I'm involved with several of the working groups, such as marketing and science.

Really this year I'm focusing more on going out across the world to speak and share. I want to talk about the state of education surrounding Python, where we are with Python in general across many different disciplines, and also how that fits in with Jupyter. Then I'll also be involved again with PyCon and the tutorials. It's actually fun to read all of the proposals that people send in.

I'm relatively new to the marketing work group, but we're trying to explore other ways to engage the community globally, as well as sponsors. We want to highlight how Python is actually being used out in the real world. The marketing group is trying to come up with a stronger Twitter campaign, so that people have more of an idea about what the PSF does.

Mike Driscoll: What are the current goals for the PSF?

Willing: The mission of the PSF is to sustain the Python language itself and protect the copyrights. There is also a goal to grow the language and the use of the language globally in places that maybe aren't using Python already.

On a year-to-year basis, the goals may look a little bit different. Obviously, running PyCon is very important and will always be a goal of the PSF. Other things may be more strategic, such as deciding how we balance the requests for grants that come in, with other projects that we are funding.

Another thing that's really important across all of the open source world is the sustainability of projects and how you fund the infrastructure that these projects are running on. We've been very fortunate in the PSF to have had some wonderful donors within the community and sponsors. But if for some reason a sponsor went away, people would still expect PyPI to be up and running and also the website.

You need to build a long-term sustainability plan, so that you don't burn out your volunteers. The PSF also needs to provide the level of service that people have come to expect. I know Donald Stufft has done a few interviews on how much traffic PyPI routes a day. The figure is pretty phenomenal. PyPI is something that we all depend on. The PSF maintains the presence of Python within the world and the infrastructure that you may take for granted on a day-to-day basis as a developer.

Carol Willing: 'The PSF maintains the presence of Python within the world and the infrastructure that you may take for granted on a day-to-day basis as a developer.'

Driscoll: So, I don't know if you can talk about this or not, but what do you do at Project Jupyter?

Willing: I can tell you what we do at Project Jupyter, because Jupyter is an open source project. It is funded with a scientific research project grants, as well as some corporate donations.

There are basically three major areas within Jupyter. There's the classic Jupyter Notebook, which grew out of the IPython Notebook. There are also the many different widgets and tools that integrate with the Notebook. Lastly there's JupyterHub, which is what I work specifically on.

JupyterHub looks at how you provide Notebooks to a group of people in a cluster. That could be in a small workshop, or a research lab. We're seeing a lot of use of JupyterHub within large academic institutions. Also, a lot of the researchers in high-performance computing are using JupyterHub for very numerically intensive processing.

Carol Willing: 'Basically JupyterLab will give you a streamlined IDE feel, with some nice functionality.'

The next generation of the Notebook is JupyterLab. Basically, JupyterLab will give you a streamlined IDE feel, with some nice functionality. You can pull graphs out of the page and have them still sync and reflect what changes are happening.

JupyterLab is built to be extensible, so you can add things and customize them. I've been using JupyterLab probably for about a year and in different iterations. The feedback has been very positive and JupyterLab was shared at SciPy a year ago.

Driscoll: Do you need a subscription to use JupyterHub? How does that work?

Willing: No, JupyterHub is also a free open source project. So, if you had a bare-metal server, you could deploy it on your own server. You could just deploy JupyterHub on AWS, Azure, Google Cloud, or others like Rackspace.

We recently put together a guide to help people to set up a JupyterHub deployment using Kubernetes. That is actually working out really nicely. There are multiple methods for the authentication of users, because there's a lot of variability in how different academic institutions authenticate people.

Carol Willing: 'You can provide every student with a web account and they will have all of the same tools and the same experience.'

You want something that we call a spawner, which will spawn an individual Jupyter Notebook instance for a person. That's why JupyterHub is attractive to universities. You can provide every student with a web account and they will have all of the same tools and the same experience. You don't have to deal with installation nightmares.

Driscoll: Do you work on IPython as well?

Willing: IPython is part of that whole Jupyter project, but the work that I do on IPython itself is minimal. I will occasionally help them to try out new releases.

Jupyter is all one big academic research project. We don't have an overabundance of marketing resources, but we're trying to spread the word. One of the things that I think is really powerful about Jupyter is that you can share information in such a way that people can interact with it easily. I've certainly seen students really gravitate towards Jupyter.

Driscoll: So what do you like about the Python community?

Willing: I think Brett Cannon and other people have said before that you come for the programming language, but you stay for the Python community. That really resonates. In the tech world, I don't know of any community that's been more welcoming than the Python community.

Carol Willing: 'You come for the programming language, but you stay for the Python community.'

So many thoughtful and talented people are willing to share their knowledge and ideas. I think that a lot of that comes from Guido himself and his willingness to have a language that's easy to use and easy to read. Guido also encourages people and answers questions because he wants a healthy Python community, as well as a healthy language. I think that is really important.

Carol Willing: 'Guido also encourages people and answers questions because he wants a healthy Python community, as well as a healthy language.'

I think it's fun to see all of the different things that people are doing. As much as I love PyCon, I really love the regional conferences. That's where you really see the new stuff that is happening. You get different people's perspectives and find out what they are using Python for.

There's nothing like trying to teach new users how to do something, to make you realize that Python needs to improve the user experience somewhere. As a developer, it's not pleasant for me, so for a new learner, who doesn't necessarily know if their thing is configured correctly, it's even more unpleasant.

Driscoll: What is exciting you about Python at the moment?

Willing: I think you've gathered from our conversation so far that my interests are not related to just one thing.

One of the nice things about Python is that I can use the language if I'm doing embedded stuff, web stuff, scientific development, or analysis. I can certainly use Python for teaching kids or adults. There aren't a whole lot of languages that I can say are really strong across the board on all of those things. I think that Python really excels there.

Carol Willing: 'Learning and education are what excite me about Python. Python 3 is a pleasure to use for teaching.'

Learning and education are what excite me about Python. Python 3 is a pleasure to use for teaching and f-strings have greatly simplified string formatting. MicroPython, CircuitPython, Raspberry Pi, micro:bit, and Jupyter have inspired more young people to make some really interesting projects. It was great fun to see the young developers at PyCon UK far exceed our expectations with their projects and lightning talks.

Driscoll: So, as a core developer of Python, where do you see the language going in the future?

Willing: I think we're going to continue to see growth in the scientific programming part of Python. So things that support the performance of Python as a language and async stability are going to continue to evolve. Beyond that, I think that Python is a pretty powerful and solid language. Even if you stopped development today, Python is a darn good language.

I think that the needs of the Python community are going to feed back into Python and influence where the language goes. It's great that we have more representation from different groups within the core development team. Smarter minds than mine could provide a better answer to your question. I'm sure that Guido has some things in mind for where he wants to see Python go.

Carol Willing: 'A better story in mobile is definitely needed. But you know, if there's a need then Python will get there.'

Mobile development has been an Achilles' heel for Python for a long time. I'm hoping that some of the BeeWare stuff is going to help with the cross-compilation. A better story in mobile is definitely needed. But you know, if there's a need then Python will get there.

I think that the language is going to continue to move towards the stuff that's in Python 3. Some big code bases, like Instagram, have now transitioned from Python 2 to 3. While there is much Python 2.7 code still in production, great strides have been made by Instagram, as they shared in their PyCon 2017 keynote.

Carol Willing: 'It will vary by company, but at some point, business needs, such as security and maintainability, will start driving greater migration to Python 3.'

There's more tooling around Python 3 and more testing tools, so it's less risky for companies to move some of their legacy code to Python 3, where it makes business sense to. It will vary by company, but at some point, business needs, such as security and maintainability, will start driving greater migration to Python 3. If you're starting a new project, then Python 3 is the best choice. New projects, especially when looking at microservices and AI, will further drive people to Python 3.

Driscoll: Why do you think that Python is being used so much for AI and machine learning?

Willing: The long history of Python being used in science and data science makes Python an excellent choice for AI. The rich ecosystem of Python libraries, including scikit-learn, NumPy, pandas, and Jupyter, gives researchers and creators a solid foundation for getting work done.

Carol Willing: 'The long history of Python being used in science and data science makes Python an excellent choice for AI.'

Driscoll: How could Python be a better language for AI?

Willing: Sustaining the existing Python infrastructure and key libraries is critical for the fundamental growth of Python. A healthy and inclusive ecosystem, and corporate funding for sustainability, will help to continue the rapid growth of AI, deep learning, and machine learning.

Driscoll: Are there any changes that you hope to see in future Python releases?

Willing: I would love to see more task-oriented documentation to support the concurrency, async, parallelism, and distributed processing. We have had some wonderful enhancements in the past few releases, and it would be fantastic to help others to more easily use these enhancements.

Driscoll: Thank you, Carol Willing.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset