Cultural Diffusion of Programming Languages

by Sergi Valverde and Ricard V. Solé

A snapshot of the Netlogo model Download Netlogo model

What is it?

This model demonstrates the effect of “positive feedback” in the diffusion of programming language innovations. This is an implementation of the model described in the paper “A Cultural Diffusion Model for the Rise and Fall of Programming Languages” by Sergi Valverde and Ricard V. Sole (submitted for publication in Human Biology). For a detailed discussion and analysis of this model, the reader is encouraged to refer to this paper.

Positive feedback (also called “increasing returns to scale” in the economic literature) refers to social amplification effects that are beneficial for the rich and harmful for the poor. Sometimes, the less fit option rises to full market domination because “the more users a given technology has, the larger the chances that other users will acquire it”. That is, the more frequent option dominates over the initially less popular options.

How it works?

The model consists of a static population of developers and a fixed pool of programming languages. Each developer is located at each patch of the lattice. Similarly to Axelrod’s model of cultural dissemination (see reference at the end), the programming culture of a developer is described by a vector that holds a certain number of languages from 1 to M. Initially, all developers (patches) do not use any language. At each time step, patches update its cultural value following three rules: (1) “Innovation” a developer ‘discovers’ a new language chosen at random with certain probability; (2) “Adoption” this is a contact-like process between neighbouring developers. One of the neighbour patches is selected at random and one language is adopted with a probability that is proportional to its frequency in the population. (3) “Forgetting” patches discard one language at random with some probability. Rare languages are discarded more frequently.

How to use it?

Choose the population size selecting the size of the lattice in x and y directions and input these values on “model settings”. Every patch has a color which represents the diversity of adopted languages (check the function ‘transfer_colormap’ to learn how the mapping is performed). The mapping was been designed to indicate the presence (or absence) of language diversity. If two patches show the same color, it is because they have adopted exactly the same programming languages. The user interface presents four input boxes for the following parameters: probability of innovation, probability of adoption, probability of forgetting and maximum number of distinct languages. The qualitative behaviour of the model is quite robust to a wide range of parameter values.

Things to notice

This is a minimal model of programming language adoption based in popularity rankings. The model can reproduce the empirical distribution of language popularity, e.g., the TIOBE index. The frequency-rank distribution of language popularity follows a generalised beta distribution (DGBD) (Martinez-Mekler et al, 2009).

Models like this can help us to understand why some technologies success (or fail) within a competitive environment. According to the simulated dynamics of technological adoption, a large percentage of existing programming languages will be abandoned in the short/mid-term.

Things to try

Vary the population size, the maximum number of languages that can coexist in the community and the probabilities of innovation and adoption. How language diversity depends on variable innovation rates?

Extending the model

Future work should extend the model in order to take into account specific features of programming languages, like the existence of specific technological niches or the cognitive characteristics of specific languages.

Netlogo features

The implementation uses the ‘array’ extension (this extension comes pre-packaged with Netlogo 5.0). It is possible to adapt this model to use lists but the array extension makes the model run faster.

Related models

This model is related to the “Urban Suite — Positive Feedback” found in the Netlogo Models Library and also to community implementations of the Axelrod’s model of Cultural Dissemination.

Credits and references

This model has been developed by Sergi Valverde and Ricard Solé. It was implemented by Sergi Valverde (svalver@gmail.com).

This is the paper were the model was first described:

Valverde, S., Solé, R. V. (2005) A Cultural Diffusion Model for the Rise and Fall of Programming Languages, submitted to Human Biology.

In the following paper there is related network analysis of programming language evolution:

Valverde, S., Solé, R. V. (2005) Punctuated Equilibrium in the Large-Scale Evolution of Programming Languages, J. Roy. Soc. Interface (in press).

The generalised beta distribution has been described here:

Martinez-Mekler, G., Martínez, R. A., del Ro, M. B., Mansilla R., Miramontes, P., and Cocho, G. (2009) Universality of Rank-Ordering Distributions in the Arts and Sciences PLoS ONE 4(3): e4791.

This is the paper where Axelrod presented his model of cultural dissemination:

Axelrod, R. 1997. “The dissemination of culture - A model with local convergence and global polarization.” Journal of Conflict Resolution 41:203-226.

How to cite

If you mention this model in a publication, we ask that you include this citation for the model itself:

Valverde, S., Solé, R. V. (2005) A Cultural Diffusion Model for the Rise and Fall of Programming Languages, submitted to Human Biology.

Copyright and License

Copyright 2015 Sergi Valverde.

![CC BY-NC-SA 3.0](http://ccl.northwestern.edu/images/creativecommons/byncsa.png)

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Sergi Valverde at svalver@gmail.com.

Published on June 12th 2015 by Sergi Valverde (@svalver).