Context of the research and research questions #
Fragments conducted an online survey with Android developers and teams about Kotlin adoption between March and April 2021. The survey aimed at answering two questions:
- The extent of Kotlin adoption in the Indian startup and enterprise ecosystem.
- How organizations are leveraging Kotlin and its features beyond UI development i.e., whether Kotlin is used for backend engineering and building data pipelines.
Key findings #
Survey respondents were primarily drawn from Android engineers and Android teams in startups, mid-sized organizations and enterprises.
Survey results show that:
Kotlin’s adoption will increase in 2-3 years, with the likelihood that the next generation of entrants in Android software development will be Kotlin native. This will displace Java’s dominance as a programming language for building Android apps.
The results also reinforce that Kotlin is primarily used for UI development. The language’s features and ability for backend engineering is still under-utilized, at least among developers and teams who mainly build Android apps (since the survey respondents are from this demographic).
More importantly, the survey reveals that engineering managers are concerned about moving large Java codebases to Kotlin because of the concern that they will not be able to hire Kotlin programmers and ramp up their teams.
Scroll down to read about the survey sample and detailed findings, and to see the survey questionnarie. #
Conclusions and recommendations #
Despite the growing demand for Kotlin and the backing of big tech firms such as Google/Android, there still exist skill gaps in the adoption of Kotlin in India. Kotlin has far-fetched benefits beyond Android as well mainly,
- On the server side, with their interoperability with the Java ecosystem.
- A cross platform mobile and web application development platform through their Kotlin multi platform.
Organizations appear to be reticent in moving their codebase to Kotlin, especially when the codebases are large. This slow move is compounded by the apprehension that hiring Kotlin programmers will be difficult and that upskilling entire teams will be difficult. The current skill gaps likely exist because most developers depend on learning the language by themselves, without access to formal training, and without community forums where experiential case studies about Kotlin can be shared freely.
We conclude that for organizations to make better progress towards adoption of Kotlin, they have to invest in training and upskilling their employees because Kotlin will be the future for Android development.
Survey design and data analysis: #
Bhavani Seetharaman is Research Associate at Hasgeek.
Zainab Bawa is co-founder, director and Chief Operating Officer (COO) at Hasgeek.
Bhavani Seetharaman and Zainab Bawa have written this report. Madhusudhan Sambojhu actively reviewed the report and helped in nuancing the findings and conclusions.
Support team: #
Anish TP illustrated the report.
Review and feedback: #
We would like to thank:
Learning resources for Kotlin for Android
Developers use various means and channels to learn about Kotlin. These learning resources are fairly distributed. The key findings in this regard are:
- YouTube channels and Kotlin language learning groups were among the primary go-to resources for learning Kotlin with 29.2 percent and 24.6 percent of respondents using these channels respectively.
- Developers depend least on training sessions to learn Kotlin to upskill themselves. Only 7.7 percent of respondents indicated training sessions as the means to learn Kotlin. This finding is surprising given that a large percentage of the population is using Kotlin for development and yet depends on YouTube tutorials for learning Kotlin (versus deep dive training).
Future research also needs to look at questions such as:
- What do developers do when they get stuck working with Kotlin? Do they refer to blogs, ask questions on Stackoverflow or in community forums?
- Which Kotlin communities are developers in India are part of? How are these communities geographically distributed? What gaps and issues do these communities address?
- What are the parts of the Kotlin language that developers find hard to grok?