An Empirical Study on the Usage of the Kotlin Programming Language for Android Development
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/001300000v8bk |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/36041 |
Resumo: | In 2017, Google announced Kotlin as one of the officially supported languages for Android development. Until then, only Java and C++ were part of this list. Among the reasons for choosing Kotlin, Google mentioned it is “concise, expressive, and designed to be type and null-safe”. Another important reason is that Kotlin is a language fully interoperable with Java and runs on the JVM. Despite Kotlin’s rapid rise in the industry, little has been done in academia to understand how developers are dealing with its adoption. This research aims to gather evidence to understand how developers are dealing with the recent adoption of Kotlin as an official language for Android development, their perception about the advantages and disadvantages related to its usage, and the most common problems faced by them. This research was conducted using the concurrent triangulation strategy, which is a mixed-method approach. We performed a thorough analysis of 9,405 questions related to Kotlin development for the Android platform on StackOverflow. Concurrently, we also conducted a basic qualitative research interviewing seven Android developers that use Kotlin, to confirm and cross-validate our results. Our study reveals that developers do seem to find the language easy to understand and to be adopted. This perception begins to change when the functional paradigm becomes more evident. According to the developers, readability and legibility are compromised if developers overuse the functional flexibility that the language provides. The developers also consider that Kotlin increases the quality of the produced code, mainly due to its null-safety guarantees. Nonetheless, they also report that it can also become a challenge when interoperating with Java, despite of the interoperability being considered as an advantage. While adopting Kotlin requires some care from developers, the benefits of its adoption on Android seem to bring many advantages to the platform according to the developers, especially in the aspect of adopting a more modern language while maintaining the consolidated Java-based development environment. |
id |
UFPE_dcc5d0043ba5900f49ff8e13f2eb04b7 |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/36041 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
OLIVEIRA, Victor Laerte dehttp://lattes.cnpq.br/6604770417375269http://lattes.cnpq.br/2117651910340729TEIXEIRA, Leopoldo Motta2020-01-17T12:01:54Z2020-01-17T12:01:54Z2019-08-08OLIVEIRA, Victor Laerte de. An Empirical Study on the Usage of the Kotlin Programming Language for Android Development. 2019. Dissertação (Mestrado em Ciência da computação) – Universidade Federal de Pernambuco, Recife, 2019.https://repositorio.ufpe.br/handle/123456789/36041ark:/64986/001300000v8bkIn 2017, Google announced Kotlin as one of the officially supported languages for Android development. Until then, only Java and C++ were part of this list. Among the reasons for choosing Kotlin, Google mentioned it is “concise, expressive, and designed to be type and null-safe”. Another important reason is that Kotlin is a language fully interoperable with Java and runs on the JVM. Despite Kotlin’s rapid rise in the industry, little has been done in academia to understand how developers are dealing with its adoption. This research aims to gather evidence to understand how developers are dealing with the recent adoption of Kotlin as an official language for Android development, their perception about the advantages and disadvantages related to its usage, and the most common problems faced by them. This research was conducted using the concurrent triangulation strategy, which is a mixed-method approach. We performed a thorough analysis of 9,405 questions related to Kotlin development for the Android platform on StackOverflow. Concurrently, we also conducted a basic qualitative research interviewing seven Android developers that use Kotlin, to confirm and cross-validate our results. Our study reveals that developers do seem to find the language easy to understand and to be adopted. This perception begins to change when the functional paradigm becomes more evident. According to the developers, readability and legibility are compromised if developers overuse the functional flexibility that the language provides. The developers also consider that Kotlin increases the quality of the produced code, mainly due to its null-safety guarantees. Nonetheless, they also report that it can also become a challenge when interoperating with Java, despite of the interoperability being considered as an advantage. While adopting Kotlin requires some care from developers, the benefits of its adoption on Android seem to bring many advantages to the platform according to the developers, especially in the aspect of adopting a more modern language while maintaining the consolidated Java-based development environment.Em 2017, o Google anunciou o Kotlin como uma das linguagens de programação oficialmente suportadas para o desenvolvimento Android. Até então, apenas Java e C++ faziam parte dessa lista. Entre as razões para a escolha do Kotlin, o Google mencionou que ele é “conciso, expressivo e projetado para ser seguro em termos de tipo e variáveis nulas”. Outra razão importante foi que o Kotlin é uma linguagem totalmente interoperável com Java e roda na JVM. Apesar da rápida ascensão de Kotlin na indústria, pouco foi feito na academia para entender como os desenvolvedores estão lidando com sua adoção. Esta pesquisa tem como objetivo coletar evidências para entender como os desenvolvedores estão lidando com a recente adoção do Kotlin como uma linguagem oficial para o desenvolvimento Android, sua percepção sobre as vantagens e desvantagens do Kotlin e os problemas mais comuns enfrentados por eles. Esta pesquisa foi conduzida usando a estratégia de triangulação concorrente, uma abordagem de método misto. Realizamos uma análise completa de 9.405 questões relacionadas ao desenvolvimento do Kotlin para a plataforma Android no StackOverflow. Simultaneamente, também realizamos uma pesquisa qualitativa básica entrevistando sete desenvolvedores Android que usam o Kotlin, para confirmar e validar de forma cruzada nossa análise. Nosso estudo revela que os desenvolvedores parecem achar a linguagem fácil de entender e ser adotado. Essa percepção começa a mudar quando o paradigma funcional se torna mais evidente. De acordo com os desenvolvedores, a legibilidade é comprometida quando os desenvolvedores abusam do paradigma funcional que a linguagem oferece. Os desenvolvedores também consideram que o Kotlin aumenta a qualidade do código produzido, principalmente devido às suas garantias de segurança contra tipos nulo. No entanto, eles também relatam que também pode se tornar um desafio ao interoperar com o Java, apesar da interoperabilidade ser vista como uma vantagem. Embora a adoção do Kotlin exija algum cuidado dos desenvolvedores, de acordo com os desenvolvedores os benefícios de sua adoção no Android parecem trazer muitas vantagens para a plataforma, especialmente pela possibilidade de adotar uma linguagem mais moderna fazendo uso de todo o ambiente de desenvolvimento consolidado baseado em Java.porUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de SoftwareLinguagens de ProgramaçãoAndroidKotlinAn Empirical Study on the Usage of the Kotlin Programming Language for Android Developmentinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPEORIGINALDISSERTAÇÃO Victor Laerte de Oliveira.pdfDISSERTAÇÃO Victor Laerte de Oliveira.pdfapplication/pdf1679245https://repositorio.ufpe.br/bitstream/123456789/36041/1/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf5c5f8f0760fd394ca6a604a87f8b82f7MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/36041/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82310https://repositorio.ufpe.br/bitstream/123456789/36041/3/license.txtbd573a5ca8288eb7272482765f819534MD53TEXTDISSERTAÇÃO Victor Laerte de Oliveira.pdf.txtDISSERTAÇÃO Victor Laerte de Oliveira.pdf.txtExtracted texttext/plain167720https://repositorio.ufpe.br/bitstream/123456789/36041/4/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf.txt33581a649550690324a2f1a282dc1ff5MD54THUMBNAILDISSERTAÇÃO Victor Laerte de Oliveira.pdf.jpgDISSERTAÇÃO Victor Laerte de Oliveira.pdf.jpgGenerated Thumbnailimage/jpeg1249https://repositorio.ufpe.br/bitstream/123456789/36041/5/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf.jpg462abf3fb1186b9ab9709f1e5a44bc74MD55123456789/360412020-01-18 02:15:31.65oai:repositorio.ufpe.br:123456789/36041TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLCBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWlzcXVlciBvYnJpZ2HDp8O1ZXMgZXhpZ2lkYXMgcGVsbyByZXNwZWN0aXZvIGNvbnRyYXRvIG91IGFjb3Jkby4KCkEgVUZQRSBpZGVudGlmaWNhcsOhIGNsYXJhbWVudGUgbyhzKSBub21lKHMpIGRvKHMpIGF1dG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50byBlbnRyZWd1ZSBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZG8gcHJldmlzdG8gbmEgYWzDrW5lYSBjKS4KRepositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212020-01-18T05:15:31Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
title |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
spellingShingle |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development OLIVEIRA, Victor Laerte de Engenharia de Software Linguagens de Programação Android Kotlin |
title_short |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
title_full |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
title_fullStr |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
title_full_unstemmed |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
title_sort |
An Empirical Study on the Usage of the Kotlin Programming Language for Android Development |
author |
OLIVEIRA, Victor Laerte de |
author_facet |
OLIVEIRA, Victor Laerte de |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/6604770417375269 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/2117651910340729 |
dc.contributor.author.fl_str_mv |
OLIVEIRA, Victor Laerte de |
dc.contributor.advisor1.fl_str_mv |
TEIXEIRA, Leopoldo Motta |
contributor_str_mv |
TEIXEIRA, Leopoldo Motta |
dc.subject.por.fl_str_mv |
Engenharia de Software Linguagens de Programação Android Kotlin |
topic |
Engenharia de Software Linguagens de Programação Android Kotlin |
description |
In 2017, Google announced Kotlin as one of the officially supported languages for Android development. Until then, only Java and C++ were part of this list. Among the reasons for choosing Kotlin, Google mentioned it is “concise, expressive, and designed to be type and null-safe”. Another important reason is that Kotlin is a language fully interoperable with Java and runs on the JVM. Despite Kotlin’s rapid rise in the industry, little has been done in academia to understand how developers are dealing with its adoption. This research aims to gather evidence to understand how developers are dealing with the recent adoption of Kotlin as an official language for Android development, their perception about the advantages and disadvantages related to its usage, and the most common problems faced by them. This research was conducted using the concurrent triangulation strategy, which is a mixed-method approach. We performed a thorough analysis of 9,405 questions related to Kotlin development for the Android platform on StackOverflow. Concurrently, we also conducted a basic qualitative research interviewing seven Android developers that use Kotlin, to confirm and cross-validate our results. Our study reveals that developers do seem to find the language easy to understand and to be adopted. This perception begins to change when the functional paradigm becomes more evident. According to the developers, readability and legibility are compromised if developers overuse the functional flexibility that the language provides. The developers also consider that Kotlin increases the quality of the produced code, mainly due to its null-safety guarantees. Nonetheless, they also report that it can also become a challenge when interoperating with Java, despite of the interoperability being considered as an advantage. While adopting Kotlin requires some care from developers, the benefits of its adoption on Android seem to bring many advantages to the platform according to the developers, especially in the aspect of adopting a more modern language while maintaining the consolidated Java-based development environment. |
publishDate |
2019 |
dc.date.issued.fl_str_mv |
2019-08-08 |
dc.date.accessioned.fl_str_mv |
2020-01-17T12:01:54Z |
dc.date.available.fl_str_mv |
2020-01-17T12:01:54Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
OLIVEIRA, Victor Laerte de. An Empirical Study on the Usage of the Kotlin Programming Language for Android Development. 2019. Dissertação (Mestrado em Ciência da computação) – Universidade Federal de Pernambuco, Recife, 2019. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/36041 |
dc.identifier.dark.fl_str_mv |
ark:/64986/001300000v8bk |
identifier_str_mv |
OLIVEIRA, Victor Laerte de. An Empirical Study on the Usage of the Kotlin Programming Language for Android Development. 2019. Dissertação (Mestrado em Ciência da computação) – Universidade Federal de Pernambuco, Recife, 2019. ark:/64986/001300000v8bk |
url |
https://repositorio.ufpe.br/handle/123456789/36041 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
instname_str |
Universidade Federal de Pernambuco (UFPE) |
instacron_str |
UFPE |
institution |
UFPE |
reponame_str |
Repositório Institucional da UFPE |
collection |
Repositório Institucional da UFPE |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/36041/1/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf https://repositorio.ufpe.br/bitstream/123456789/36041/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/36041/3/license.txt https://repositorio.ufpe.br/bitstream/123456789/36041/4/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf.txt https://repositorio.ufpe.br/bitstream/123456789/36041/5/DISSERTA%c3%87%c3%83O%20Victor%20Laerte%20de%20Oliveira.pdf.jpg |
bitstream.checksum.fl_str_mv |
5c5f8f0760fd394ca6a604a87f8b82f7 e39d27027a6cc9cb039ad269a5db8e34 bd573a5ca8288eb7272482765f819534 33581a649550690324a2f1a282dc1ff5 462abf3fb1186b9ab9709f1e5a44bc74 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172922927480832 |