25 Billion events on more than 75 Million different repositories. The cool thing about this is that there are usernames associated with each of those events, which means new programming languages worth learning I can count how many different people are using each language. Since the data goes back 7 years, I can also plot how popular each programming language was over time which reveals some interesting patterns.
Looking at these trend lines, we can figure out which programming languages are worth learning, and which programming languages probably should be avoided. There are also detailed notes there on how I’m resolving which programming language each repository is written in, which turned out to be far and away the most difficult part of this entire project. While the overall rankings are pretty interesting, it’s worth taking a deeper look at how these languages have been performing over time. C have all been popular for more than the 7 years of data that we’re tracking here, and I don’t see that changing anytime soon.
Did not find what they wanted? Try here
In just the last couple of weeks, I’ve seen a new sampling profiler for Ruby and a new autodifferentiation framework both written in Rust – and Rust is being used by countless other interesting projects. Successfully launching a new programming language requires a fair bit of effort – it’s not enough to just develop an elegant language, you also have to grow the community and the ecosystem behind the language. Based on this I’d be somewhat hesitant to use any of them for a new project. 11th most popular today with 3. This means that even languages with a declining market share can still have a growing user base. Looking at it this way, Ruby has more than 3x the number of active users using the language than in 2011.
It just hasn’t grown nearly as fast as other languages, causing it to perform relatively worse on this analysis. There are also a couple of other factors at work here. This caused them to attract a large number of Ruby programmers in their early days causing Ruby to be overrepresented then. The second thing to note is that certain newer languages seem to be cannibalizing user share from older languages. For instance, the decline in Objective-C usage corresponds with the rise of Swift. While Objective-C is declining, it seems that overall iOS development is relatively stable. Juptyer Notebooks have seen significant and steady growth in the last couple of years.
However, this seems to be mostly because of the growth of Python for doing data science. While Jupyter supports many other languages than just Python, in every case I’ve looked at the Jupyter Notebook was written in Python. This means that the popularity of Python is potentially undercounted in this analysis. Since Jupyter Notebooks can include images and other non-code things in them, this means they are frequently the largest files by bytes even if not necessarily by line count. This has lead several Python repositories to be incorrectly labeled as being Juptyer Notebooks. In the future, I might merge Juptyer and Python together when running this analysis.
Given the relatively small numbers here, there is more noise in the rankings. Elixir seems to be worth keeping an eye on though, and only narrowly missed out on being in the top 25 languages. The TIOBE index ranks programming languages by the number of search engine results for the programming language name. However, it doesn’t show trends over time. Erik Bernhardsson ranked programming languages by calculating the eigen vector of blog posts talking about moving from one language to another.