Programming languages rise and fall, but as more and more languages proliferate in software development, the landscape around them becomes increasingly fragmented, according to a report.
RedMonk analyst Donnie Berkholz’s report, “GitHub language trends and the fragmenting landscape,” delved into the ebbs and flows of programming languages by analyzing data from GitHub, the most popular open-source repository for software development. He looked at how the 12 languages on GitHub that have cracked the top 10 in popularity from 2008 to 2013 have grown and changed, measured by the number of new non-forked repositories, issues and users. The findings show which languages have dominated GitHub usage, which show the strongest growth, and how developer language preferences have diversified and fragmented over the past five years.
The dozen languages measured are C, C++, C#, CSS, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby and Shell.
(Related: JavaScript tops RedMonk programming language rankings)
Of the many insights Berkholz gleaned from the data, the main theme was a fragmentation of the programming language landscape. With the exception of Java and a recent uptick in CSS, all languages showed a long-term downhill trend in new repositories and users.
Berkholz attributed this steady decline in market shares to the plethora of choices for developers as new repos (short for repositories), issues and users of less popular languages have increased as smaller language communities migrate onto GitHub.
“The trend begins a more gradual increase as a wide variety of smaller language communities migrate onto GitHub,” Berkholz wrote. “While new users increase the fastest, that likely reflects a combination of users in less popular languages and ‘lurker’ users with no repositories at all, and therefore no primary language. The programming landscape today continues to fragment, and this GitHub data supports that trend over time as well as an increasing overlap with the mainstream.”
Another one of Berholz’s overarching findings was that over the course of the past half-decade, only five languages on GitHub have been truly dominant.
“It’s increasingly obvious that only five languages have historically mattered on GitHub on the basis of overall share: JavaScript, Ruby, Java, PHP and Python,” he wrote. “New contender CSS is on the way up, while C and C++ hold honorable mentions. Everything else is, on a volume basis, irrelevant today, even if it’s showing fantastic growth like Go and will likely be relevant in these rankings within the next year or two.”
Other conclusions drawn in Berkholz report include:
• When GitHub hit the mainstream, Ruby took a dive. GitHub at first was centered around the Ruby on Rails community. In the past five years, Ruby, and to a lesser extent Python, have shown the steepest decline of any languages as GitHub has grown to encompass a larger set of old and new languages. Ruby and Python’s shares of the total number of issues on GitHub have leveled out at around 10%, respectively.
• The rise of JavaScript. While Berkholz acknowledged its growth is due at least in part to the rise of Node.js since 2010, he also attributed JavaScript’s popularity to the proliferation of JavaScript frameworks and JavaScript’s development philosophy of bundling dependencies in the same repo as the primary codebase. The rate of growth is slowing, though, plateauing at around 25% of new GitHub issues.
• Java is growing steadily. Java is the only language of the 12 that shows steady growth in new users choosing it as a primary language. Berkholz asserted that the growth of Java to a 10% share of GitHub issues reinforced the claim that “GitHub is reaching the enterprise.
There are limitations and potential issues with generalizing the GitHub data to the wider software development community, though. Berkholz acknowledged that due to the lack of encouragement or the active discouragement of open-source in iOS and Windows development, both C# and Objective-C are nearly nonexistent on GitHub despite their wide usage.
Another caveat is that because GitHub tags repositories with a primary language based on lines of code, some repositories may be misclassified. The 2009 spike in Perl popularity is an aberration, the result of an import of Perl’s entire module ecosystem into GitHub.
For more information, view the raw data from the report here.