This post is a summary of the most known current software developer trends and surveys. The purpose is to give a condensed view about the programming language Kotlin in the overall software ecosystem.
Should I learn Kotlin?
Absolutetly yes. All major platforms are showing the growing interest in this language.
Programming language index
There are already some companies and organisations who are analyzing the polularity of programming languages. Let’s have a look on the biggest indices: TIOBE and PYPL.
TIOBE Index for July 2019
TIOBE stands for The Importance of Being Earnest, the title of a comedy play by Oscar Wilde that was first performed in 1895 (Wikipedia). The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written (TIOBE). Currently Kotlin ranks on 43 / 50 on the TIOBE Index.
PYPL PopularitY of Programming Language
The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google. The more a language tutorial is searched, the more popular the language is assumed to be. It is a leading indicator. The raw data comes from Google Trends (PYPL). Currently Kotlin ranks on 14 on the PYPL Index with a strong increasing tendency.
Search Engines, Repositories and Forums
Google search trend evolution
One big identicator of the popularity of a programming language is the search trend in Google. As you know Google is the biggest search engine and it provides a simple API to check of certain keywords are evolving. In this case we were looking for the keyword Kotlin. In the following figure, the worlwide search trends are displayed since Google officially announced Kotlin as supported language for Android development (I/O 2017). When this happened, many people were looking for Kotlin. Of course this normalized shortly afterwards. The interesting point to notice is, that since then the search trends are continously increasing. So Kotlin becomes more and more popular and the people are searching more often for this language.
StackOverflow search trends
StackOverflow is the best site for developers to find answers for their technical questions. If a programming language appears often in the questions, it means that actively many people are learning and using the programming language. Similar to the Google Search Trends, a big spike can be seen in 2017. Since then, the number of questions are rapidely increasing. More people are asking questions about Kotlin than the other trending languages Go and Groovy. A very big increase can be seen in the first part of 2019. It will be interesting to follow this trend in the future.
GitHub repository trends
Another way of estimating the popularity of language is the number of repositories. In fact this shows who is actively developing in this lanuage, rather than just learning it. On the blog of Ben Frederickson an interesting comparison is made between different programming languages and their number of repositories on GitHub. In our case the comparison of the 4 trending lanugages (Kotlin, Go, TypeScript and Rust) is for interest. One can see that Go has the most repositories. The number of Kotlin repositories is rapidly increasing, since I/O 2017.
The RedMonk Programming Language Rankings
RedMonk, the developer-focused industry analyst firm, is combining the results from GitHub and from StackOverflow and is putting it in context. On the x – Axis and y – Axis the popularity in GitHub and StackOverflow, respectively, are displayed. Kotlin is in both areas well placed. This means that there is a good community of people who can help learning Kotlin and as well a good community who are actively developing.