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.
C# & JavaScript — There are also some curious disconnects between the TIOBE index (based on web searches) and other metrics. For example, RedMonk puts both C# and JavaScript near the top on both Stack Overflow and GitHub, yet TIOBE shows a downright ridiculous 1.6% for JavaScript and a continuing decline for C# since Microsoft started its War on .NET and lost developer trust. This is likely an endemic problem with evaluating raw web searches for languages that are typically used within bigger technological systems. Searches for HTML, CSS, jQuery, or Node.js would not count for JavaScript, and searches for .NET, ASP.NET, WPF, or Xamarin components would not count for C#. Indeed, TIOBE states under “Bugs & Change Requests” that it has explicitly rejected the inclusion of “Rails, jQuery, JSP, etc.” as search terms! Since few people do extensive JavaScript programming without jQuery, this is likely to drop a large portion of relevant searches.
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.
Replacing JavaScript — Finally, efforts continued to improve or replace this ubiquitous but frankly terrible language. John Resig has written a nice overview of Mozilla’s Asm.js: The JavaScript Compile Target, and Peter Bright confirms that Asm.js actually works, although with the expected caveats for pre-production software. On the high-level side, Gaston Hillar demonstrates how Microsoft’s TypeScript compiles to JavaScript. However, I rather doubt that many developers will want to adopt another Microsoft product to write cross-platform web applications. I think Google’s Dart is far more likely to emerge as the most popular sane alternative to JavaScript. Already natively supported in Chrome, Dart has now also been submitted for ECMA standardization which means other companies will have a precise and stable implementation target.
2014-05-04: Red Monk’s Donnie Berkholz has supplied a thorough analysis of GitHub language use. Some points of interest: GitHub numbers may overestimate JavaScript and underestimate C# and Objective C; and “Java was the only top language that showed long-term increases” in its share of new users.