Analyzed the 7500w+ GitHub code warehouse, which language is the most hot?

Source: Internet
Author: User
Tags tiobe index in python

(Click the public number above for a quick follow-up)


Turn from: Open source China

Www.oschina.net/news/92822/ranking-programming-languages-by-github-users


Recently, developers in Reddit released a post, content is through the GitHub user data analysis obtained by the programming language ranking list. The author argues that it would be interesting to calculate how many people on GitHub use each language to sort all programming languages.

Let's take a look at what this data source "unique" leaderboard has to pay attention to.

First, the authors say the data for this analysis comes mainly from GitHub Archive and ghtorrent. He analyzes more than 1.25 billion events (including push new code, fork, star, issue processing, etc.) in 7500w+ different warehouses on GitHub Archive, and calculates the MAU (number of monthly active users) per language. Detailed analysis instructions can be viewed at this point.

Take a look at the overall data, as of January 24, 2018, by counting the activity of active users on GitHub, the results for each language are as follows (Top 25):

The overall ranking is very interesting, but we should have a deep understanding of how these languages evolve over time. (data can be traced back to 7 years ago)

Mainstream programming languages

As you can see, mainstream programming languages have a relatively stable user base, and most of them are expected by you.

From the tracking data, JavaScript, Python, Java, C + + and C have been holding this heat for more than 7 years, so it's still not going to change in the near term.

JavaScript keeps its "faucet" status as it can be explained, because it is basically a language that all programmers need to use.

Over time, however, more and more users of Python have recently surpassed Java as the second most popular programming language on GitHub. Much of the growth in Python seems to come from developers ' interest in machine learning. In fact, the overall popularity of Python may be underestimated here (more likely later).

C + + seems to be going beyond C, which is also based on projects like GCC that have been converted from C to C + + to use some of the features of C + +. Because C + + is basically a superset of C, the GCC team found that using a limited subset of C + + allowed them to write cleaner code.

2018 programming languages to learn

The best way to observe this programming language trend is to identify emerging programming languages with a rapidly growing user base:

Clearly, the fastest growing languages for the user group are: Go,typescript,kotlin and Rust.

The authors say he has been studying Go and Typescript for the past few weeks. He found that Go is really useful for writing concurrent server-side programs, and may not be willing to use JavaScript for a few weeks after using TypeScript.

The rise of Kotlin is expected, and Kotlin is primarily used for Android application development, and when it is announced as an official support language for Android development, look at the slope variation in the graph.

For Rust, growth here is slower than in other languages, but there are still many amazing projects. The authors recommend two two projects written in Rust-the sample parser for Ruby and the autodifferentiation framework.

In fact, all these languages have one thing in common, and they all have big companies behind them. Just as Google is on the Go, Microsoft is typescript,jetbrains to Kotlin,mozilla to Rust. Successful promotion of a new language requires a lot of effort-at least to develop an elegant language is not enough, but also to expand the community behind the language and ecosystems. Libraries and software packages, tools, and documentation for common tasks, such as IDE support, are very important for users to use a language, and they all require a lot of effort.

language in which the downward trend occurs

The percentage of Ruby,php,objective-c,coffeescript and Perl users on GitHub has dropped significantly over the past 7 years.

It is worth noting, however, that this data is based on a percentage of the GitHub user base, while the number of GitHub users is growing rapidly. Over the past 7 years, GitHub has grown by more than 20 times times its users. This means that even language with declining market share may have a growing user base.

In this way, the number of active users using the Ruby language has exceeded 3 times times compared to 2011. Its growth is not as fast as other languages, resulting in relatively poor performance in this analysis.

It is also important to note that some newer languages seem to be eating away at the user base of the older version of the language. For example, the decline of objective-c users corresponds to the rise of Swift. In addition, Coffeescript seems to have been replaced by TypeScript:

While Objective-c is slipping, iOS development as a whole is relatively stable. Similarly, Coffeescript seems to have paved the way for TypeScript because it makes programmers accustomed to compiling code into JavaScript.

Functional Programming Languages

The authors say there is relatively little data here, and there are more interference factors in the rankings, and he does not believe that as time goes by, Clojure and Haskell will show such a noticeable decline. And Elixir This language deserves everyone's attention, although not ranked in the top 25.

The author also analyzes the language used in the field of science, and can view the original text in detail. The authors also say that future tracking of programming language popularity will refer to other data, such as the TIOBE index, the tag trend chart on the Stack Overflow, and GitHub octoverse.

Source code and overall rankings can be viewed on GitHub. Https://github.com/benfred/github-analysis

Finally, Reddit post replies, users gave their own statistics for comparative reference, he counted the top ten most popular programming languages Reddit on the number of subreddits (Subreddits is a sub-section of Reddit, Users can subscribe according to their interests and needs)

python–213594
javascript–199592
java–81241
php–58794
c++–58788
c#–52103
go–39529
ruby–38405
rust–33124
c–32351



Think this article is helpful. Please share to more people

focus on "What programmers do" and improve programming skills

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.