An Empirical Study on the Usage of the Kotlin Programming Language for Android Development

Detalhes bibliográficos
Ano de defesa: 2019
Autor(a) principal: OLIVEIRA, Victor Laerte de
Orientador(a): TEIXEIRA, Leopoldo Motta
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
Programa de Pós-Graduação: Programa de Pos Graduacao em Ciencia da Computacao
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Link de acesso: 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
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/36041In 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
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.
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_ 1797782451414630400