Vivek Haldar
Empirical Analysis of Programming Language Adoption
Leo Meyerovich has some hard data on the factors that affect programming language adoption, in a paper in the upcoming OOPSLA 2013. For anyone interested in programming languages, the entire paper is worth reading.
Some points that jumped out at me:
- extrinsic properties like library availability and social factors are much more important than intrinsic factors like language features
- C++ was by far the hardest language to master. Java, JavaScript and C# were in the middle. Python and Ruby were the easiest.
- There was almost no variation with age in the number of languages one is proficient in. Good data to use against ageism.
- There is a high correlation between enjoying a language and its expressivity.
- Static typing still has a massive PR problem. Only ⅓ of developers find static types valuable, compared with ⅔ who find unit-testing valuable. “This suggests that today’s type systems may err too much on the side of catching bad programs rather than enabling flexible development styles.”
- Performance was ranked the 2nd most important feature (after libraries), but specific language features that help performance ranked much lower, which shows a “gap between the importance of performance and the language features used to achieve it today.”
- Advice for language designers: “Since languages grow niche-by-niche, designers should focus their marketing and library-creation efforts on particular communities. Growth comes by expanding to new domains.” Examples are numpy for scientific programming in Python, and Ruby on Rails for webapps.
Previous related posts:
Whither programming language research?