Measuring programming language popularity

From Wikipedia, the free encyclopedia
Jump to: navigation, search
The TIOBE index graph from 2002 to 2015, an example for a programming language popularity index. This TIOBE index graph indicates a decade-long competing of Java (black) and C (blue) for the top position, while Objective C (light green) achieved big gains in the last years.[1]

It is difficult to determine which programming languages are most widely used, and what usage means varies by context. One language may occupy the greater number of programmer hours, a different one have more lines of code, a third may utilize the most CPU time, and so on. Some languages are very popular for particular kinds of applications. For example, COBOL is still strong in the corporate data center, often on large mainframes; FORTRAN in engineering applications; C in embedded applications and operating systems; and other languages are regularly used to write many different kinds of applications.

Methods[edit]

Various methods of measuring language popularity, each subject to a different bias over what is measured, have been proposed:

  • counting the number of times the language name is mentioned in web searches, such as is done by Google Trends
  • counting the number of job advertisements that mention the language[2][3]
  • the number of books sold that teach or describe the language[4][5]
  • estimates of the number of existing lines of code written in the language — which may underestimate languages not often found in public searches[6]
  • counts of language references (i.e., to the name of the language) found using a web search engine[7]
  • counting the number of projects in that language on SourceForge[8] and FreshMeat.[9]
  • counting the number of postings in Usenet newsgroups about the language[10]

Indices[edit]

Several indices have been published :

  • The monthly "TIOBE Programming Community Index" has been published since 2001, and shows the top 10 languages' popularity graphically, the top 20 languages with a rating and delta, and the top 50 languages' ratings.[11] The numbers are based on searching the Web with certain phrases that include language names and counting the numbers of hits returned.
  • The "Language Popularity Index"[12] is based on a similar approach, however in a transparent way: counts for all {search engine, language} pairs are published. An open source tool for grabbing counts from search engines is provided as well, so the rankings can be reproduced and verified. It does not show historical trends.
  • The PYPL PopularitY of Programming Language[13] is a leading indicator based on Google Trends, reflecting what developers actually search on the web, instead of what pages are available. It shows the popularity trends since 2004, worldwide and for 5 countries.
  • The "RedMonk Programming Language Rankings"[14] are derived from a correlation of programming traction on GitHub (usage) and Stack Overflow (discussion).
  • The "Trendy Skills"[15] searches and extracts from popular advertising websites the skills and technologies that employers are looking and classifies skills sought in categories, one of which is the Programming Languages category. It allows the user to see the trends for one or more skills or categories at specified time ranges. Data is also accessible via a public API, so anyone can generate their own statistics.
  • "The Transparent Language Popularity Index" has the goal to provide a "fully automatic, transparent, open-source and free tool to measure the popularity of programming languages on the Internet". As it is Sourceforge hosted open-source software and the data is public the results are verifiable.[16]
  • Black Duck Software monitors since 2003 in the "Black Duck KnowledgeBase" open-source projects and can therefore generate programming language distributions charts.[17]

References[edit]

  1. ^ McMillan, Robert (2013-08-01). "Is Java Losing Its Mojo?". wired.com. Java is on the wane, at least according to one outfit that keeps on eye on the ever-changing world of computer programming languages. For more than a decade, it has dominated the Tiobe Programming Community Index — a snapshot of software developer enthusiasm that looks at things like internet search results to measure how much buzz different languages have. But lately, Java has been slipping. 
  2. ^ "SSL/Computer Weekly IT salary survey: finance boom drives IT job growth". ComputerWeekly.com. September 2007. Retrieved 14 June 2013. 
  3. ^ "Jobs Tractor language trends, based on jobs advertised on Twitter". JobsTractor. Retrieved 14 June 2013. 
  4. ^ O'Reilly, Tim. "Programming Language Trends". O'Reilly Radar. Retrieved 14 June 2013. 
  5. ^ State of the Computer Book Market 2008, part 4 — The Languages
  6. ^ Bieman, J.M.; Murdock, V., Finding code on the World Wide Web: a preliminary investigation, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation, 2001
  7. ^ "Tiobe Index Definition". TIOBE Software. Retrieved April 10, 2012. 
  8. ^ Programming Language Usage Graph by François Labelle "usage of top computer languages from Sept 2000 to Feb 2006 [...] at SourceForge."
  9. ^ Eric S. Raymond, The Art of Unix Programming, Chapter 14. Languages, http://www.catb.org/~esr/writings/taoup/html/ch14s05.html
  10. ^ How popular are various programming languages? by Anton Ertl TU Wien
  11. ^ "TIOBE Programming Community Index". TIOBE Software BV. Retrieved 14 June 2013. 
  12. ^ Language Popularity Index
  13. ^ PYPL PopularitY of Programming Language index
  14. ^ RedMonk Programming Language Rankings
  15. ^ Trendy Skills
  16. ^ The Transparent Language Popularity Index - Results: July 2013 update on sourceforge.com (accessed April 2015)
  17. ^ This Year’s Language Use on blackducksoftware.com (accessed 2015)