Why Do Android Devs Convert To Kotlin?
Written by Mike James   
Wednesday, 01 April 2020

Not just why, but how? Moving an app from an existing language to a new one isn't something that happens every day, but since the advent of Kotlin it's more common than it was. So what is Java to Kotlin all about?

Some new research based on an interview technique and a program that analyses code repositories aims to answer the why and the how of Kotlin migration. There is a full account of the methodology in the research paper, but it is worth extracting the main findings and thinking about them a little.

The first question is: How many Android applications have been fully migrated to Kotlin? 

We know from Google that Kotlin is a growing force and it shouldn't be a surprise to learn that of 374 apps 86 (30%) have been 100% migrated to Kotlin - that's a lot of work - or is it? Of the migrated applications, 36% were completely migrated in a single commit. Others migrated slowly from one language to the other and partial migrations accounted for 63% of the 214 apps that included Kotlin code.

Of the people who didn't do a complete migration the reasons for not doing so were:

  1. only Java code that needs to be modified is migrated
  2. only new code is written in Kotlin
  3. lack of time to complete the migration.

So why migrate at all? The survey concludes that there were four reasons:

  1. to avoid limitations of Java versions
  2. to produce safer code
  3. to use a modern program language with new features
  4. to follow Google’s direction

I think a. and c. are very similar, but d.? Does anyone do what Google tells them? And did no one think that moving to Kotlin might provide some protection from fallout over the Oracle v Google lawsuit?

And what advice is there if you are thinking of migrating:

  1. Developers used the auto-converter tool for migrating code, however, the converted code often needs to be manually modified.

    No surprise there - what tool ever does a perfect conversion?

  2. Coroutines simplify the implementation of concurrency in Android.

    This one surprised me  a little as this is a different approach to concurrency than Java offers.

  3. Kotlin code is easier to read and maintain according to the majority of the interviewed developers.

    I think I would agree with this observation. I don't mind writing Java but I perfer writing Kotlin and I get so used to the Kotlin idioms that I increasingly find going back to Java unpleasant.

So should you migrate?

I would say the answer is very much yes, but I don't think you have to make a complete migration. Writing new code in Kotlin is a good start and see how it progresses. The good news is that Kotlin and Java work together.

More Information

How and Why did developers migrate Android Applications from Java to Kotlin? A study based on code analysis and interviews with developers Matias Martinez and Bruno Gois Mateus

Related Articles

Kotlin Versus Java - A Developer's Rosetta Stone

The Programmer's Guide To Kotlin

How is Java Doing?-State of Java in 2019

Developing Android Apps with Kotlin

Google Developers Codelab Refactoring to Kotlin

Udacity Kotlin BootCamp for Programmers 


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Linus Torvalds Over Flows On Overflows In C

You may think of Linus Torvalds as the Linux guru, but he is also a leading expert on C and often ignored and misunderstood in this role. A recent exchange on the Linux Kernel mailing list demonstrate [ ... ]

Apache Arrow 16 Adds Azure Blob Support

Apache Arrow 16 has been released with improvements to the C data interface and to Arrow Flight RPC, and the addition of support for Azure Blob data format.

More News

raspberry pi books



or email your comment to: comments@i-programmer.info






Last Updated ( Friday, 19 August 2022 )