Why Did Developers Migrate Android Applications From Java to Kotlin?

Currently, the majority of apps running on mobile devices are Android apps developed in Java. However, developers can now write Android applications using a new programming language: Kotlin, which Google adopted in 2017 as an official programming language for developing Android apps. Since then, And...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:IEEE transactions on software engineering 2022-11, Vol.48 (11), p.4521-4534
Hauptverfasser: Martinez, Matias, Gois Mateus, Bruno
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 4534
container_issue 11
container_start_page 4521
container_title IEEE transactions on software engineering
container_volume 48
creator Martinez, Matias
Gois Mateus, Bruno
description Currently, the majority of apps running on mobile devices are Android apps developed in Java. However, developers can now write Android applications using a new programming language: Kotlin, which Google adopted in 2017 as an official programming language for developing Android apps. Since then, Android developers have been able to: a) start writing Android applications from scratch using Kotlin, b) evolve their existing Android applications written in Java by adding Kotlin code (possible thanks to the interoperability between the two languages), or c) migrate their Android apps from Java to Kotlin. This paper aims to study this last case. We conducted a qualitative study to find out why Android developers have migrated Java code to Kotlin and to bring together their experiences about the process, in order to identify the main difficulties they have faced. To execute the study, we first identified commits from open-source Android projects that have migrated Java code to Kotlin. Then, we emailed the developers that wrote those migrations. We thus obtained information from 98 developers who had migrated code from Java to Kotlin. This paper presents the main reasons identified by the study for performing the migration. We found that developers migrated Java code to Kotlin in order to access programming language features (e.g., extension functions, lambdas, smart casts) that are not available with Java for Android development, and to obtain safer code (i.e., avoid null-pointer exceptions). We also identified research directions that the research community could focus on in order to help developers to improve the experience of migrating their Java applications to Kotlin.
doi_str_mv 10.1109/TSE.2021.3120367
format Article
fullrecord <record><control><sourceid>proquest_RIE</sourceid><recordid>TN_cdi_proquest_journals_2735379732</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>9576593</ieee_id><sourcerecordid>2735379732</sourcerecordid><originalsourceid>FETCH-LOGICAL-c278t-847246a3c87ffd946977ce1b0ac7caa2d7a920a16739caf57708e8dc1a5206833</originalsourceid><addsrcrecordid>eNo9kL1PwzAQxS0EEqWwI7FYYmJIOdt1HE8o6gcFihgoYrQOx6Gp0jo4aaX-96RK1emku997evcIuWUwYAz04-JzMuDA2UAwDiJWZ6THtNCRkBzOSQ9AJ5GUib4kV3W9AgCplOyR8fdyT8dFRsdu50pfuVDT9-I3YONousmCb09pVZWFxabwm5pOg1_TV9whbTx9801ZbJ6uyUWOZe1ujrNPvqaTxWgWzT-eX0bpPLJcJU2UDBUfxihsovI808NYK2Ud-wG0yiLyTKHmgCxWQlvM24CQuCSzDNsf4kSIPnnofJdYmioUawx747Ews3RuDjsQQsfA1I617H3HVsH_bV3dmJXfhk0bz3AlpFBaCd5S0FE2-LoOLj_ZMjCHXk3bqzn0ao69tpK7TlI45064liqWWoh_P7lxGg</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2735379732</pqid></control><display><type>article</type><title>Why Did Developers Migrate Android Applications From Java to Kotlin?</title><source>IEEE Electronic Library (IEL)</source><creator>Martinez, Matias ; Gois Mateus, Bruno</creator><creatorcontrib>Martinez, Matias ; Gois Mateus, Bruno</creatorcontrib><description>Currently, the majority of apps running on mobile devices are Android apps developed in Java. However, developers can now write Android applications using a new programming language: Kotlin, which Google adopted in 2017 as an official programming language for developing Android apps. Since then, Android developers have been able to: a) start writing Android applications from scratch using Kotlin, b) evolve their existing Android applications written in Java by adding Kotlin code (possible thanks to the interoperability between the two languages), or c) migrate their Android apps from Java to Kotlin. This paper aims to study this last case. We conducted a qualitative study to find out why Android developers have migrated Java code to Kotlin and to bring together their experiences about the process, in order to identify the main difficulties they have faced. To execute the study, we first identified commits from open-source Android projects that have migrated Java code to Kotlin. Then, we emailed the developers that wrote those migrations. We thus obtained information from 98 developers who had migrated code from Java to Kotlin. This paper presents the main reasons identified by the study for performing the migration. We found that developers migrated Java code to Kotlin in order to access programming language features (e.g., extension functions, lambdas, smart casts) that are not available with Java for Android development, and to obtain safer code (i.e., avoid null-pointer exceptions). We also identified research directions that the research community could focus on in order to help developers to improve the experience of migrating their Java applications to Kotlin.</description><identifier>ISSN: 0098-5589</identifier><identifier>EISSN: 1939-3520</identifier><identifier>DOI: 10.1109/TSE.2021.3120367</identifier><identifier>CODEN: IESEDJ</identifier><language>eng</language><publisher>New York: IEEE</publisher><subject>android ; Applications programs ; Codes ; Computer languages ; Computer Science ; Electronic devices ; Internet ; Interviews ; Java ; Kotlin ; Migration ; mining repositories ; mobile development ; Open source software ; Programming languages ; qualitative study ; software evolution</subject><ispartof>IEEE transactions on software engineering, 2022-11, Vol.48 (11), p.4521-4534</ispartof><rights>Copyright IEEE Computer Society 2022</rights><rights>Distributed under a Creative Commons Attribution 4.0 International License</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c278t-847246a3c87ffd946977ce1b0ac7caa2d7a920a16739caf57708e8dc1a5206833</cites><orcidid>0000-0002-2945-866X</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/9576593$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>230,314,776,780,792,881,27901,27902,54733</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/9576593$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc><backlink>$$Uhttps://uphf.hal.science/hal-03396017$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>Martinez, Matias</creatorcontrib><creatorcontrib>Gois Mateus, Bruno</creatorcontrib><title>Why Did Developers Migrate Android Applications From Java to Kotlin?</title><title>IEEE transactions on software engineering</title><addtitle>TSE</addtitle><description>Currently, the majority of apps running on mobile devices are Android apps developed in Java. However, developers can now write Android applications using a new programming language: Kotlin, which Google adopted in 2017 as an official programming language for developing Android apps. Since then, Android developers have been able to: a) start writing Android applications from scratch using Kotlin, b) evolve their existing Android applications written in Java by adding Kotlin code (possible thanks to the interoperability between the two languages), or c) migrate their Android apps from Java to Kotlin. This paper aims to study this last case. We conducted a qualitative study to find out why Android developers have migrated Java code to Kotlin and to bring together their experiences about the process, in order to identify the main difficulties they have faced. To execute the study, we first identified commits from open-source Android projects that have migrated Java code to Kotlin. Then, we emailed the developers that wrote those migrations. We thus obtained information from 98 developers who had migrated code from Java to Kotlin. This paper presents the main reasons identified by the study for performing the migration. We found that developers migrated Java code to Kotlin in order to access programming language features (e.g., extension functions, lambdas, smart casts) that are not available with Java for Android development, and to obtain safer code (i.e., avoid null-pointer exceptions). We also identified research directions that the research community could focus on in order to help developers to improve the experience of migrating their Java applications to Kotlin.</description><subject>android</subject><subject>Applications programs</subject><subject>Codes</subject><subject>Computer languages</subject><subject>Computer Science</subject><subject>Electronic devices</subject><subject>Internet</subject><subject>Interviews</subject><subject>Java</subject><subject>Kotlin</subject><subject>Migration</subject><subject>mining repositories</subject><subject>mobile development</subject><subject>Open source software</subject><subject>Programming languages</subject><subject>qualitative study</subject><subject>software evolution</subject><issn>0098-5589</issn><issn>1939-3520</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><sourceid>RIE</sourceid><recordid>eNo9kL1PwzAQxS0EEqWwI7FYYmJIOdt1HE8o6gcFihgoYrQOx6Gp0jo4aaX-96RK1emku997evcIuWUwYAz04-JzMuDA2UAwDiJWZ6THtNCRkBzOSQ9AJ5GUib4kV3W9AgCplOyR8fdyT8dFRsdu50pfuVDT9-I3YONousmCb09pVZWFxabwm5pOg1_TV9whbTx9801ZbJ6uyUWOZe1ujrNPvqaTxWgWzT-eX0bpPLJcJU2UDBUfxihsovI808NYK2Ud-wG0yiLyTKHmgCxWQlvM24CQuCSzDNsf4kSIPnnofJdYmioUawx747Ews3RuDjsQQsfA1I617H3HVsH_bV3dmJXfhk0bz3AlpFBaCd5S0FE2-LoOLj_ZMjCHXk3bqzn0ao69tpK7TlI45064liqWWoh_P7lxGg</recordid><startdate>20221101</startdate><enddate>20221101</enddate><creator>Martinez, Matias</creator><creator>Gois Mateus, Bruno</creator><general>IEEE</general><general>IEEE Computer Society</general><general>Institute of Electrical and Electronics Engineers</general><scope>97E</scope><scope>RIA</scope><scope>RIE</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>JQ2</scope><scope>K9.</scope><scope>1XC</scope><scope>VOOES</scope><orcidid>https://orcid.org/0000-0002-2945-866X</orcidid></search><sort><creationdate>20221101</creationdate><title>Why Did Developers Migrate Android Applications From Java to Kotlin?</title><author>Martinez, Matias ; Gois Mateus, Bruno</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c278t-847246a3c87ffd946977ce1b0ac7caa2d7a920a16739caf57708e8dc1a5206833</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>android</topic><topic>Applications programs</topic><topic>Codes</topic><topic>Computer languages</topic><topic>Computer Science</topic><topic>Electronic devices</topic><topic>Internet</topic><topic>Interviews</topic><topic>Java</topic><topic>Kotlin</topic><topic>Migration</topic><topic>mining repositories</topic><topic>mobile development</topic><topic>Open source software</topic><topic>Programming languages</topic><topic>qualitative study</topic><topic>software evolution</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Martinez, Matias</creatorcontrib><creatorcontrib>Gois Mateus, Bruno</creatorcontrib><collection>IEEE All-Society Periodicals Package (ASPP) 2005-present</collection><collection>IEEE All-Society Periodicals Package (ASPP) 1998-Present</collection><collection>IEEE Electronic Library (IEL)</collection><collection>CrossRef</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Health &amp; Medical Complete (Alumni)</collection><collection>Hyper Article en Ligne (HAL)</collection><collection>Hyper Article en Ligne (HAL) (Open Access)</collection><jtitle>IEEE transactions on software engineering</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Martinez, Matias</au><au>Gois Mateus, Bruno</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Why Did Developers Migrate Android Applications From Java to Kotlin?</atitle><jtitle>IEEE transactions on software engineering</jtitle><stitle>TSE</stitle><date>2022-11-01</date><risdate>2022</risdate><volume>48</volume><issue>11</issue><spage>4521</spage><epage>4534</epage><pages>4521-4534</pages><issn>0098-5589</issn><eissn>1939-3520</eissn><coden>IESEDJ</coden><abstract>Currently, the majority of apps running on mobile devices are Android apps developed in Java. However, developers can now write Android applications using a new programming language: Kotlin, which Google adopted in 2017 as an official programming language for developing Android apps. Since then, Android developers have been able to: a) start writing Android applications from scratch using Kotlin, b) evolve their existing Android applications written in Java by adding Kotlin code (possible thanks to the interoperability between the two languages), or c) migrate their Android apps from Java to Kotlin. This paper aims to study this last case. We conducted a qualitative study to find out why Android developers have migrated Java code to Kotlin and to bring together their experiences about the process, in order to identify the main difficulties they have faced. To execute the study, we first identified commits from open-source Android projects that have migrated Java code to Kotlin. Then, we emailed the developers that wrote those migrations. We thus obtained information from 98 developers who had migrated code from Java to Kotlin. This paper presents the main reasons identified by the study for performing the migration. We found that developers migrated Java code to Kotlin in order to access programming language features (e.g., extension functions, lambdas, smart casts) that are not available with Java for Android development, and to obtain safer code (i.e., avoid null-pointer exceptions). We also identified research directions that the research community could focus on in order to help developers to improve the experience of migrating their Java applications to Kotlin.</abstract><cop>New York</cop><pub>IEEE</pub><doi>10.1109/TSE.2021.3120367</doi><tpages>14</tpages><orcidid>https://orcid.org/0000-0002-2945-866X</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0098-5589
ispartof IEEE transactions on software engineering, 2022-11, Vol.48 (11), p.4521-4534
issn 0098-5589
1939-3520
language eng
recordid cdi_proquest_journals_2735379732
source IEEE Electronic Library (IEL)
subjects android
Applications programs
Codes
Computer languages
Computer Science
Electronic devices
Internet
Interviews
Java
Kotlin
Migration
mining repositories
mobile development
Open source software
Programming languages
qualitative study
software evolution
title Why Did Developers Migrate Android Applications From Java to Kotlin?
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-05T11%3A05%3A54IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_RIE&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Why%20Did%20Developers%20Migrate%20Android%20Applications%20From%20Java%20to%20Kotlin?&rft.jtitle=IEEE%20transactions%20on%20software%20engineering&rft.au=Martinez,%20Matias&rft.date=2022-11-01&rft.volume=48&rft.issue=11&rft.spage=4521&rft.epage=4534&rft.pages=4521-4534&rft.issn=0098-5589&rft.eissn=1939-3520&rft.coden=IESEDJ&rft_id=info:doi/10.1109/TSE.2021.3120367&rft_dat=%3Cproquest_RIE%3E2735379732%3C/proquest_RIE%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2735379732&rft_id=info:pmid/&rft_ieee_id=9576593&rfr_iscdi=true