In most respects, Pablo Galindo is a software engineer like any other, but for one significant distinction: he holds a position on the council in charge of steering one of the world’s most popular programming languages, python.
For almost three decades, all revisions and additions to the language were personally vetoed by its creator, Guido van Rossum, who was affectionately known as the Benevolent Dictator for Life (BDFL).
But since 2018, this role has been fulfilled by the five members of the Python Steering Council instead. The first line-up featured van Rossum himself, but he has since handed over the reins to a different selection of developers, including Galindo, with new members elected after each major release.
“The Python Steering Council attempts to reflect the decisions of the community, weighing up all the advantages and disadvantages [of each proposal],” explained Galindo, who has held his seat for the last 18 months or so.
“Our responsibility is to make sure everyone is represented in a decision. It’s not about what we think personally, it’s about the community mind.”
Inevitably, however, pleasing everyone is rarely possible, which means difficult decisions need to be made. And making material improvements to a 30-year-old programming language is not simple feat in itself.
The secret sauce
Written almost in natural language, Python has long been a favorite among developers for its simplicity and versatility, despite its shortcomings from a performance perspective.
Galindo first became involved in the Python community roughly six years ago, he told us, and his story is “very similar to a bunch of people”. He had identified an error in the documentation relating to the Python Interpreter and decided to put in a submission to fix it himself.
He was surprised by the warmth and receptiveness of the community and drawn to the possibility of expanding upon a language for which he already had a significant fondness.
“What led me to Python was that it is so easy to start experimenting and doing things with the language. If you learn one piece of the programming language, you can connect it to the rest very easily,” Galindo said, in a separate interview with Tech Radar Pro last year.
A question often asked of open source contributors is why anyone would volunteer their labor and expertise in exchange for no monetary reward, especially at a time in which programming skills command a premium. But there is no singular answer.
There are many different types of contributor, motivated by an equally wide range of factors, Galindo explained. Some “drive-by contributors” pop in only to resolve a particular roadblock, while others are eager to learn from the established members, or simply take pride in the idea their code will be deployed at scale.
“Although many people are driven to the idea of the lonely genius, that is just not true any more, especially for big systems,” said Galindo.
“In open source, everyone has a different story; the reasons are different for every person. One of the biggest drivers for me has been the people I’ve met along the way. I’ve made plenty of friends in this community, but I’ve also learned from the best.”
Over time, Galindo became increasingly embedded in the ecosystem. Bloomberg, his employer, allows him to set aside half of his time for open source work each week, which has given him the opportunity to dedicate energy to developing the Python language.
After becoming a member of the core development team, the group of engineers with commit privileges, Galindo was nominated for a position on the Python Steering Council in 2019, before eventually earning a seat the following year.
Given the popularity of Python and size of the application base, the Steering Council has to exercise considerable caution when deciding upon changes to the language. Broadly, the goal is to improve the level of performance and range of functionality in line with the demands of the community, but doing so is rarely straightforward.
“There is an important distinction between making a new language fast, versus increasing the performance of a 30-year-old language without breaking the code,” noted Galindo. “That is extremely difficult; I cannot tell you how difficult it is.”
“There are a number of industry techniques that everyone uses [to improve performance], but Python is incompatible with these methods. Instead, we have to develop entirely new techniques to achieve only similarly good results.”
Separately, the team has to worry about the knock-on effects of a poorly-implemented change, of which there could be many. As an example, Galindo gestured towards the impact of a drop-off in language performance on energy usage (and therefore carbon emissions).
“When you make changes in the language, it can be daunting,” he said. “How many CPU cycles will I cost the planet with a mistake?”
There are also challenges that arise as a result of misaligned incentives within the community, an inevitability given the number and diversity of stakeholders.
A series of proposals was previously submitted, for instance, by proponents of a feature known as static typing, where by variable types are manually declared. However, while these changes would have represented an objective improvement for this specific sub-community, they were deemed by the council to have an overall detrimental effect and were therefore rejected.
In situations such as these, the Python Steering Council aims to gather up all available evidence and feedback from the community (often via a single public mailing list) and come to as well-informed a verdict as possible.
“I don’t think there have been any decisions we’ve made that have been categorically bad for the language,” Galindo told us. “But there are some that with the benefit of new evidence we may have made differently.”
Where next for Python?
Despite the various headwinds, the Python Steering Council has lofty ambitions for the language, with the next major release (version 3.11) set to go live in October. Apparently, speed is the first item on the agenda.
Galindo told us the aim is to improve performance by up to 60% (depending on the workload) with Python 3.11 and again with version 3.12. In the longer term, meanwhile, the goal is to make the language between two and five times faster within the next decade.
The council will also continue to focus on improving the quality of error messages generated by the Python Interpreter in an effort to make debugging much simpler, a pet project of Galindo’s and a major focus during his time on the council.
“Overall, I’m very optimistic. [The project] is already going better than expected, given the difficulty of the task at hand,” he told us. “The community is full of exceptional developers, including my colleagues on the council, and it shows.”