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:
Appendix I: Survey Questionnaire
The following questionnaire that was circulated for this research. The questionnaire consisted of multiple choice and descriptive questions. Average response time was close to four minutes.
Company name (optional)
Which OS are you comfortable developing apps in?
- Others (please specify)
Which programming languages and frameworks are you comfortable working with?
Are you primarily a Java developer?
Does your organization have an in-house app development team?
Does your organization have a Native, iOS, Flutter or PWA app?
Which programming language is used for the app that your company has developed?
If Kotlin is used in your organization, why was it chosen as the framework for app development?
Since how long have you been working with Kotlin?
- Less than one year
- Between 1 and 3 years
- Greater than 3 years
If your organization does not use Kotlin, did it evaluate Kotlin as an option for app development?
What percentage (%) of your codebase is in Kotlin?
How do you write code in Kotlin?
- Using Java style of writing code in Kotlin.
- Using idiomatic Kotlin code.
What is the one key challenge that you or your team has faced in migrating the codebase from Java to Kotlin?
Do you use new tooling for Kotlin such as Jetpack Compose?
Is Kotlin empowering you to build UI using patterns?
Do you build data pipelines using Kotlin?
What are your primary learning resources for Kotlin?
- Popular weekly newsletters
- Kotlin language learning resources group
- Developer forums such as Reddit
- YouTube channels
- Training sessions
- Others (please specify)