Andrew Binstock’s annual Rise And Fall of Languages analyzes Google Trends, the TIOBE index, and Ohloh’s coverage of 600,000 open-source projects to discover… that there wasn’t much to discover. Java and C++ continue their slow long-term decline, but as Daniel Lemire notes that decline is so slow that any year-over-year movement might as well be random noise. Moreover, it does not prevent both languages from retaining top spots in all measurements. In the case of Java, Binstock himself had acknowledged last October that a huge disconnect exists between Internet gossip and programming reality.
Perl & Python — Binstock highlights a remarkable reversal of these two languages’ popularity among open-source projects. Python has established itself as “the top general-purpose scripting language” while Perl seems to virtually vanish. Python has become especially popular among data scientists, as Tal Yarkoni and Mikio Braun both attest. Interestingly, Braun points to Matlab licensing changes as one motivating factor: academics could no longer afford Matlab and had to start looking for alternatives. As for Perl… well, Siebert, Stefik & Slattery (2011) found that Perl users were unable to write programs more accurately than those using a language designed with syntax chosen randomly from the ASCII table. As I was never a fan of the “comic-book characters swearing” school of language design, I certainly won’t be missing Perl if it’s really vanishing!
Language Adoption — Also last year, Vivek Haldar discovered an interesting study by Meyerovich & Rabkin, Empirical Analysis of Programming Language Adoption. Evaluating open-source use and programmer surveys, the authors found that the availability of open-source libraries, existing code, and experience all strongly influence language selection – but language features such as performance, reliability, and semantics do not. Since language adoption also follows a power law, with a few languages used virtually everywhere, this confirms the empirically obvious fact that language quality itself will at best result in niche success. Mainstream popularity requires that the language receives good library support and successfully spreads to other niches, until it’s popular for being popular, Kardashian-style.