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...
Gespeichert in:
Veröffentlicht in: | IEEE transactions on software engineering 2022-11, Vol.48 (11), p.4521-4534 |
---|---|
Hauptverfasser: | , |
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 & 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 |