Guido van Rossum, the founder of Python, caused a stir when he announced his departure from Python’s decision-making board, resigning as the so-called BDFL (benevolent dictator for life), citing the squabble over proposed improvements to PEP 572 as an example of his departure. In an interview with InfoWorld, Guido Van Rossum talked again about his decision making and his thoughts on the Python development process.
Photo source:Dan Stroud (CC BY sas 4.0)
InfoWorld: Why did you quit BDFL?
Van Rossum: Well, life and dictatorship are just jokes. I’ve been toying with the idea of retirement for the better part of a decade. I had my own health issues, which were compounded by the countless times I had to tell the community how to do things and stay calm, and the countless times I had to explain Python’s language philosophy to others.
The straw that broke the camel’s back was a very controversial Python improvement proposal (PEP 572), and after I accepted it, they went to social media like Twitter and said something that really hurt me personally. And the people who say these things are actually core Python developers, so I feel like we don’t trust each other anymore.
InfoWorld: Can you talk about the benefits of PEP 572 proposal and why it is so controversial?
Van Rossum: This proposal is a syntax for adding intra-expression assignments to Python. All in all, this is a small addition to the language that lets people put assignments in the middle of expressions when they need them. Many other languages have similar secondary features, including C and C ++, which I’m familiar with. Java and JavaScript are also supported as far as I know. It’s a fairly small syntax, but in some cases it makes code easier to write and easier to read by removing redundancy.
Many people think they know what Python’s design philosophy is, and this proposal feels like it doesn’t follow Python’s design principles. The bill was also controversial because its authors had a bit of an ego, and previous versions had serious problems that later led even those who agreed with the basic idea to vote against it. This is a slight grammatical change, not radical.
InfoWorld: In which version of Python will this feature be included?
Van Rossum: Python 3.8.
InfoWorld: Will there be another BDFL? How will Python be managed next?
Van Rossum: Unfortunately, I can’t tell you right now. I gave the core development team the task of thinking about the next management model and selecting the person in charge. This should be a long discussion, with no immediate consensus.
What can be said is that they have agreed to a deadline of October 1, 2018. I am confident that by November 1, 2018, they will have elected a reasonable management proposal. By Jan. 1, 2019, they promised to complete an election or appoint a leader.
If there is a proposal that calls for a BDFL, the proposal must spell out the details, such as how the BDFL will be chosen, how long the appointment will last, and under what circumstances he or she can be impeached. By January 1st, they could elect one.
InfoWorld: What role will you play on the Python project?
Van Rossum: I’ll be a regular contributor or regular core developer, occasionally writing and reviewing some code. I’ll try to focus on mentoring core developers, especially new core developers, as well as women and minorities, because diversity in the core development team is one of my goals.
InfoWorld: Are you worried that your departure as BDFL might scare off some Python enthusiasts?
Van Rossum: I don’t think so. Python has a very healthy community and a very capable core team. If I didn’t think they could overcome that and continue to lead language development for decades to come, I wouldn’t resign. I think this is a slight blow, but I look forward to the success of subsequent releases and the evolution of the development process.
InfoWorld: What has been the Python development process over the past few years? How do you view its future development?
Van Rossum: The language is constantly changing, and we’ve added some new features to the language and library. Perhaps the biggest change in the past few years has been the popularity of the language. Up until five years ago, Python felt like a “little player.”
Since then, Python has grown incredibly fast as a major tool in data science. This also leads to more pressure on core developers to make decisions, but in general, the way we release the language is pretty stable.
We have release Managers. Major releases take about a year and a half between releases. Bug fixes can take anywhere from a few months to more than half a year due to usage.
We also have a very stable Python improvement proposal process. Maybe the way PEP works has changed with the growth of social media, but in general, aside from switching from Mercurial to Git a few years ago, PEP has been a very stable process with no missteps or problems.
Open Source China