September 26, 2018, 12:30–13:30
Room MS003
Digital Workshop
Abstract
This paper studies the effect of network structure on technology adoption, in the setting of the Python programming language. A major release of Python, Python 3, provides more advanced but backward-incompatible features to Python 2. We model the dynamics of Python 3 adoption by package developers.1 Python packages form a hierarchical network through dependency requirements. The adoption decision involves not only updating one’s own code base, but also dealing with dependencies lacking Python 3 support. We build a dynamic model of technology adoption where each package makes an irreversible decision to provide support for Python 3. The optimal timing of adoption depends on the prediction of future states, for the package itself as well as each of its dependencies. With a complete dataset of package characteristics for all historical releases, we are able to draw the complete hierarchical structure of the network, and simplify the estimation by grouping packages into different layers based on the dependency relationship. We study how individuals’ adoption decisions can propagate through the links. We also test various counterfactual policies that can promote a faster Python 3 adoption process.