Python is an important piece of Microsoft’s future in the cloud, being one of the essential languages for services and teams to support, as well as the most popular choice for the rapidly growing field of data science and analytics both inside and outside of the company. But Python hasn’t always had such a prestigious position around Microsoft.
In 2010, our few Pythonistas were flying under the radar, in case somebody noticed that they could reassign a few developers to their own project. The team was small, leftover from a previous job, but was chipping away at a company culture that suffered from “not invented here” syndrome: Python was a language that belonged to other people, and so Microsoft was not interested.
Over the last eight years, the change has been dramatic. Many Microsoft products now include Python support, and some of the newest only support Python. Some of our critical tools are written in Python, and we are actively investing in the language and community.
This is my story. From when I first started at the company in 2011 through to today, I’ve had the privilege to work on some significant Python-related projects, and work with many of the teams building others. These days, I get to contribute throughout Microsoft to build up our Python muscles and collaborate with the community to make Python better for everyone.
Python in Visual Studio
Before starting at Microsoft, I was still in grad school in Australia. Already a Visual Studio fan and a Python developer, I was excited to see the earliest releases of Python Tools for Visual Studio (PTVS) in 2010. IronPython, the version of Python that runs on .NET, had been handed off to the community, and a small team with Dino Viehland and Shahrokh Mortazavi was put together to keep building Python support into Microsoft products. After months of negotiation with the legal team, PTVS was published on CodePlex (Microsoft’s former open-source hosting service) under the Apache 2.0 license and allowed to accept external contributions.
As a Python developer, I happily took the earliest PTVS builds and reported everything that didn’t work well, including fixing some issues. I contributed for a month or so, and then the team’s manager asked if I’d be interested to come to Microsoft as a summer intern. One year later I was a full-time member of the Redmond-based team.
Since our team had the most Python knowledge we were the natural home for supporting Python on Microsoft Azure. The earliest versions of the Azure SDK for Python were developed within our team, now five people, and as the importance of Python increased we were able to move that work to a dedicated team. Through his contributions to this SDK, we discovered and quickly hired Laurent Mazuel, who has since been central to the success of the Azure management SDK — coordinating over 100 Azure services to produce one coherent library is a challenge!
Over the following years we watched our projects grow in users and usefulness. Each release would generate buzz in places we rarely promoted our products like Twitter, Reddit and Hacker News, with many people not believing that Microsoft was actually working on anything to do with Python, including our own colleagues. I worked in the office next to one developer for half a year before he understood that we actually had a Python team.
Contributing to Python
Meanwhile, at PyCon US in 2015 I volunteered to help support Python on Windows, an offer which was gladly accepted and, after multiple interviews with the legal teams, I soon became a Microsoft-supported CPython core developer.
For the Python 3.5 release, I ported Python from using the Microsoft Visual C++ 2010 compiler and runtime to the latest version, including having changes made to our C Runtime specifically for CPython (such as the _set_thread_local_invalid_parameter_handler() function). I also rewrote the installer, fixing per-user installations and changing to properly secured install directories. Finally, I took on the responsibility for building all the Windows versions of Python available from python.org.
Today at Microsoft we have five core CPython committers, and all of us are allowed time to contribute to the project. We’ve contributed improvements to compatibility, registration, fancy new icons (example.png), JIT execution hooks, and have more in progress. Being employed by a large corporation with its own projects helps us see problems and scenarios that we may not if we were purely volunteers. Joined with paid development time, we are able to have a satisfyingly positive impact on the Python community.
Latest resources about Python at Microsoft are always at aka.ms/Python Watch our Python video content on Channel 9 or Steve’s Python talks.
Browse our open-source Python projects in the Microsoft and Azure organizations on GitHub.