{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,2]],"date-time":"2026-10-02T13:33:39Z","timestamp":1790948019693,"version":"4.1.0"},"publisher-location":"New York, NY, USA","reference-count":45,"publisher":"ACM","license":[{"start":{"date-parts":[[2020,10,5]],"date-time":"2020-10-05T00:00:00Z","timestamp":1601856000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2020,10,5]]},"DOI":"10.1145\/3382494.3410676","type":"proceedings-article","created":{"date-parts":[[2020,10,23]],"date-time":"2020-10-23T16:59:24Z","timestamp":1603472364000},"page":"1-12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["On the adoption, usage and evolution of Kotlin features in Android development"],"prefix":"10.1145","author":[{"given":"Bruno Gois","family":"Mateus","sequence":"first","affiliation":[{"name":"Universit\u00e9 Polytechnique Hauts-de-France, France"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matias","family":"Martinez","sequence":"additional","affiliation":[{"name":"Universit\u00e9 Polytechnique Hauts-de-France, France"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,10,23]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"Comparison to Java Programming Language. https:\/\/kotlinlang.org\/docs\/reference\/comparison-to-java.html Online","year":"2019","unstructured":"2016. Comparison to Java Programming Language. https:\/\/kotlinlang.org\/docs\/reference\/comparison-to-java.html Online ; accessed 01- July - 2019 . 2016. Comparison to Java Programming Language. https:\/\/kotlinlang.org\/docs\/reference\/comparison-to-java.html Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_2_1","volume-title":"https:\/\/kotlinlang.org\/docs\/reference\/functions.html#tail-recursive-functions Online","author":"Classes Inline","year":"2019","unstructured":"2016. Inline Classes . https:\/\/kotlinlang.org\/docs\/reference\/functions.html#tail-recursive-functions Online ; accessed 01- July - 2019 . 2016. Inline Classes. https:\/\/kotlinlang.org\/docs\/reference\/functions.html#tail-recursive-functions Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_3_1","volume-title":"Inline Functions. https:\/\/kotlinlang.org\/docs\/reference\/inline-functions.html Online","year":"2019","unstructured":"2016. Inline Functions. https:\/\/kotlinlang.org\/docs\/reference\/inline-functions.html Online ; accessed 01- July - 2019 . 2016. Inline Functions. https:\/\/kotlinlang.org\/docs\/reference\/inline-functions.html Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_4_1","unstructured":"2017. Will \"It\" variable stay or go? https:\/\/discuss.kotlinlang.org\/t\/will-it-variable-stay-or-go\/522\/19 Online; accessed 01-July-2019.  2017. Will \"It\" variable stay or go? https:\/\/discuss.kotlinlang.org\/t\/will-it-variable-stay-or-go\/522\/19 Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_5_1","volume-title":"https:\/\/kotlinlang.org\/docs\/reference\/inline-classes.html Online","author":"Classes Inline","year":"2019","unstructured":"2018. Inline Classes . https:\/\/kotlinlang.org\/docs\/reference\/inline-classes.html Online ; accessed 01- July - 2019 . 2018. Inline Classes. https:\/\/kotlinlang.org\/docs\/reference\/inline-classes.html Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2901739.2903508"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2017.64"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3196398.3196449"},{"key":"e_1_3_2_1_9_1","volume-title":"Proceedings of the 25th International Symposium on Software Testing and Analysis","author":"Chapman Carl","year":"2016","unstructured":"Carl Chapman and Kathryn T. Stolee . 2016. Exploring Regular Expression Usage and Context in Python . In Proceedings of the 25th International Symposium on Software Testing and Analysis ( Saarbr\u00fccken, Germany) (ISSTA 2016 ). ACM, New York, NY, USA, 282--293. https:\/\/doi.org\/10.1145\/2931037.2931073 10.1145\/2931037.2931073 Carl Chapman and Kathryn T. Stolee. 2016. Exploring Regular Expression Usage and Context in Python. In Proceedings of the 25th International Symposium on Software Testing and Analysis (Saarbr\u00fccken, Germany) (ISSTA 2016). ACM, New York, NY, USA, 282--293. https:\/\/doi.org\/10.1145\/2931037.2931073"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/2820518.2820536"},{"key":"e_1_3_2_1_11_1","volume-title":"Use common Kotlin patterns with Android. https:\/\/developer.android.com\/kotlin\/common-patterns#delegate Online","author":"Developers Android","year":"2019","unstructured":"Android Developers . [n.d.]. Use common Kotlin patterns with Android. https:\/\/developer.android.com\/kotlin\/common-patterns#delegate Online ; accessed 01- July - 2019 . Android Developers. [n.d.]. Use common Kotlin patterns with Android. https:\/\/developer.android.com\/kotlin\/common-patterns#delegate Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_12_1","volume-title":"Use Java 8 language features. https:\/\/developer.android.com\/studio\/write\/java8-support Online","author":"Developers Android","year":"2019","unstructured":"Android Developers . 2017. Use Java 8 language features. https:\/\/developer.android.com\/studio\/write\/java8-support Online ; accessed 01- July - 2019 . Android Developers. 2017. Use Java 8 language features. https:\/\/developer.android.com\/studio\/write\/java8-support Online; accessed 01-July-2019."},{"key":"e_1_3_2_1_13_1","volume-title":"AsyncTask API Reference. https:\/\/developer.android.com\/reference\/android\/os\/AsyncTask\/ [Online","author":"Developers Android","year":"2019","unstructured":"Android Developers . 2019. AsyncTask API Reference. https:\/\/developer.android.com\/reference\/android\/os\/AsyncTask\/ [Online ; accessed 3- December - 2019 ]. Android Developers. 2019. AsyncTask API Reference. https:\/\/developer.android.com\/reference\/android\/os\/AsyncTask\/ [Online; accessed 3-December-2019]."},{"key":"e_1_3_2_1_15_1","volume-title":"Proceedings of the 36th International Conference on Software Engineering","author":"Dyer Robert","year":"2014","unstructured":"Robert Dyer , Hridesh Rajan , Hoan Anh Nguyen , and Tien N. Nguyen . 2014. Mining Billions of AST Nodes to Study Actual and Potential Usage of Java Language Features . In Proceedings of the 36th International Conference on Software Engineering ( Hyderabad, India) (ICSE 2014 ). ACM, New York, NY, USA, 779--790. https:\/\/doi.org\/10.1145\/2568225.2568295 10.1145\/2568225.2568295 Robert Dyer, Hridesh Rajan, Hoan Anh Nguyen, and Tien N. Nguyen. 2014. Mining Billions of AST Nodes to Study Actual and Potential Usage of Java Language Features. In Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014). ACM, New York, NY, USA, 779--790. https:\/\/doi.org\/10.1145\/2568225.2568295"},{"key":"e_1_3_2_1_16_1","volume-title":"Refactoring: improving the design of existing code","author":"Fowler Martin","unstructured":"Martin Fowler . 2018. Refactoring: improving the design of existing code . Addison-Wesley Professional . Martin Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2017.83"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3196398.3196460"},{"key":"e_1_3_2_1_19_1","volume-title":"An empirical study on quality of Android applications written in Kotlin language. Empirical Software Engineering 24, 6 (01","author":"Mateus Bruno G\u00f3is","year":"2019","unstructured":"Bruno G\u00f3is Mateus and Matias Martinez . 2019. An empirical study on quality of Android applications written in Kotlin language. Empirical Software Engineering 24, 6 (01 Dec 2019 ), 3356--3393. https:\/\/doi.org\/10.1007\/s10664-019-09727-4 10.1007\/s10664-019-09727-4 Bruno G\u00f3is Mateus and Matias Martinez. 2019. An empirical study on quality of Android applications written in Kotlin language. Empirical Software Engineering 24, 6 (01 Dec 2019), 3356--3393. https:\/\/doi.org\/10.1007\/s10664-019-09727-4"},{"key":"e_1_3_2_1_20_1","unstructured":"Chet Haase. 2019. Google I\/O 2019: Empowering developers to build the best experiences on Android Play. https:\/\/android-developers.googleblog.com\/2019\/05\/google-io-2019-empowering-developers-to-build-experiences-on-Android-Play.html Online; accessed 21-April-2020.  Chet Haase. 2019. Google I\/O 2019: Empowering developers to build the best experiences on Android Play. https:\/\/android-developers.googleblog.com\/2019\/05\/google-io-2019-empowering-developers-to-build-experiences-on-Android-Play.html Online; accessed 21-April-2020."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/3340730.3340749"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.46"},{"key":"e_1_3_2_1_23_1","volume-title":"Kotlin Coding Conventions. https:\/\/kotlinlang.org\/docs\/reference\/coding-conventions.html.","year":"2019","unstructured":"JetBrains. 2019 . Kotlin Coding Conventions. https:\/\/kotlinlang.org\/docs\/reference\/coding-conventions.html. JetBrains. 2019. Kotlin Coding Conventions. https:\/\/kotlinlang.org\/docs\/reference\/coding-conventions.html."},{"key":"e_1_3_2_1_24_1","unstructured":"JetBrains. 2019. Kotlin Language Documentation. https:\/\/kotlinlang.org\/docs\/kotlin-docs.pdf.  JetBrains. 2019. Kotlin Language Documentation. https:\/\/kotlinlang.org\/docs\/kotlin-docs.pdf."},{"key":"e_1_3_2_1_25_1","unstructured":"Eric Jones Travis Oliphant Pearu Peterson etal 2001-. SciPy: Open source scientific tools for Python. http:\/\/www.scipy.org\/ [Online; accessed 21-April-2020].  Eric Jones Travis Oliphant Pearu Peterson et al. 2001-. SciPy: Open source scientific tools for Python. http:\/\/www.scipy.org\/ [Online; accessed 21-April-2020]."},{"key":"e_1_3_2_1_26_1","volume-title":"How Maintainability Issues of Android Apps Evolve. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). 334--344","author":"Malavolta I.","year":"2018","unstructured":"I. Malavolta , R. Verdecchia , B. Filipovic , M. Bruntink , and P. Lago . 2018 . How Maintainability Issues of Android Apps Evolve. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). 334--344 . https:\/\/doi.org\/10.1109\/ICSME. 2018 .00042 10.1109\/ICSME.2018.00042 I. Malavolta, R. Verdecchia, B. Filipovic, M. Bruntink, and P. Lago. 2018. How Maintainability Issues of Android Apps Evolve. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). 334--344. https:\/\/doi.org\/10.1109\/ICSME.2018.00042"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2017.45"},{"key":"e_1_3_2_1_28_1","volume-title":"Power","author":"Malloy Brian A.","year":"2019","unstructured":"Brian A. Malloy and James F . Power . 2019 . An empirical analysis of the transition from Python 2 to Python 3. Empirical Software Engineering 24, 2 (01 Apr 2019), 751--778. https:\/\/doi.org\/10.1007\/s10664-018-9637-2 10.1007\/s10664-018-9637-2 Brian A. Malloy and James F. Power. 2019. An empirical analysis of the transition from Python 2 to Python 3. Empirical Software Engineering 24, 2 (01 Apr 2019), 751--778. https:\/\/doi.org\/10.1007\/s10664-018-9637-2"},{"key":"e_1_3_2_1_29_1","unstructured":"Matias Martinez and Bruno Gois Mateus. 2020. How and Why did developers migrate Android Applications from Java to Kotlin? A study based on code analysis and interviews with developers. https:\/\/arxiv.org\/pdf\/2003.12730.pdf. (2020). arXiv:2003.12730  Matias Martinez and Bruno Gois Mateus. 2020. How and Why did developers migrate Android Applications from Java to Kotlin? A study based on code analysis and interviews with developers. https:\/\/arxiv.org\/pdf\/2003.12730.pdf. (2020). arXiv:2003.12730"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE-Companion.2019.00043"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133909"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2013.24"},{"key":"e_1_3_2_1_33_1","volume-title":"On the Adoption of Kotlin on Android Development: A Triangulation Study. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 206--216","author":"Oliveira V.","unstructured":"V. Oliveira , L. Teixeira , and F. Ebert . 2020 . On the Adoption of Kotlin on Android Development: A Triangulation Study. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 206--216 . V. Oliveira, L. Teixeira, and F. Ebert. 2020. On the Adoption of Kotlin on Android Development: A Triangulation Study. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 206--216."},{"key":"e_1_3_2_1_34_1","volume-title":"Exception Evolution in Long-Lived Java Systems. In 2017 IEEE\/ACM 14th International Conference on Mining Software Repositories (MSR). 302--311","author":"Osman H.","year":"2017","unstructured":"H. Osman , A. Chis , C. Corrodi , M. Ghafari , and O. Nierstrasz . 2017 . Exception Evolution in Long-Lived Java Systems. In 2017 IEEE\/ACM 14th International Conference on Mining Software Repositories (MSR). 302--311 . https:\/\/doi.org\/10.1109\/MSR. 2017 .21 10.1109\/MSR.2017.21 H. Osman, A. Chis, C. Corrodi, M. Ghafari, and O. Nierstrasz. 2017. Exception Evolution in Long-Lived Java Systems. In 2017 IEEE\/ACM 14th International Conference on Mining Software Repositories (MSR). 302--311. https:\/\/doi.org\/10.1109\/MSR.2017.21"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2017.7884646"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"crossref","unstructured":"Chris Parnin Christian Bird and Emerson Murphy-Hill. 2011. Java Generics Adoption: How New Features are Introduced Championed or Ignored. In Proceedings of the International Working Conference on Mining Software Repositories (proceedings of the international working conference on mining software repositories ed.). ACM. https:\/\/www.microsoft.com\/en-us\/research\/publication\/java-generics-adoption-how-new-features-are-introduced-championed-or-ignored\/  Chris Parnin Christian Bird and Emerson Murphy-Hill. 2011. Java Generics Adoption: How New Features are Introduced Championed or Ignored. In Proceedings of the International Working Conference on Mining Software Repositories (proceedings of the international working conference on mining software repositories ed.). ACM. https:\/\/www.microsoft.com\/en-us\/research\/publication\/java-generics-adoption-how-new-features-are-introduced-championed-or-ignored\/","DOI":"10.1145\/1985441.1985446"},{"key":"e_1_3_2_1_37_1","volume-title":"Adoption and use of Java generics. Empirical Software Engineering 18, 6 (01","author":"Parnin Chris","year":"2013","unstructured":"Chris Parnin , Christian Bird , and Emerson Murphy-Hill . 2013. Adoption and use of Java generics. Empirical Software Engineering 18, 6 (01 Dec 2013 ), 1047--1089. https:\/\/doi.org\/10.1007\/s10664-012-9236-6 10.1007\/s10664-012-9236-6 Chris Parnin, Christian Bird, and Emerson Murphy-Hill. 2013. Adoption and use of Java generics. Empirical Software Engineering 18, 6 (01 Dec 2013), 1047--1089. https:\/\/doi.org\/10.1007\/s10664-012-9236-6"},{"key":"e_1_3_2_1_38_1","volume-title":"2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). 20--31","author":"Pinto G.","year":"2016","unstructured":"G. Pinto , K. Liu , F. Castor , and Y. D. Liu . 2016. A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections . In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). 20--31 . https:\/\/doi.org\/10.1109\/ICSME. 2016 .34 10.1109\/ICSME.2016.34 G. Pinto, K. Liu, F. Castor, and Y. D. Liu. 2016. A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections. In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). 20--31. https:\/\/doi.org\/10.1109\/ICSME.2016.34"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.04.064"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2015.7081817"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC.2010.37"},{"key":"e_1_3_2_1_42_1","first-page":"403","article-title":"When and why your code starts to smell bad","volume":"1","author":"Tufano Michele","year":"2015","unstructured":"Michele Tufano , Fabio Palomba , Gabriele Bavota , Rocco Olivetox , Massimiliano Di Penta , Andrea De Lucia , and Denys Poshyvanyk . 2015 . When and why your code starts to smell bad . Icse 1 (2015), 403 -- 414 . https:\/\/doi.org\/10.1109\/ICSE.2015.59 10.1109\/ICSE.2015.59 Michele Tufano, Fabio Palomba, Gabriele Bavota, Rocco Olivetox, Massimiliano Di Penta, Andrea De Lucia, and Denys Poshyvanyk. 2015. When and why your code starts to smell bad. Icse 1 (2015), 403--414. https:\/\/doi.org\/10.1109\/ICSE.2015.59","journal-title":"Icse"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884849"},{"key":"e_1_3_2_1_44_1","volume-title":"C (Aug.","author":"Wu Di","year":"2016","unstructured":"Di Wu , Lin Chen , Yuming Zhou , and Baowen Xu. 2016. An Extensive Empirical Study on C++ Concurrency Constructs. Inf. Softw. Technol. 76 , C (Aug. 2016 ), 1--18. https:\/\/doi.org\/10.1016\/j.infsof.2016.04.004 10.1016\/j.infsof.2016.04.004 Di Wu, Lin Chen, Yuming Zhou, and Baowen Xu. 2016. An Extensive Empirical Study on C++ Concurrency Constructs. Inf. Softw. Technol. 76, C (Aug. 2016), 1--18. https:\/\/doi.org\/10.1016\/j.infsof.2016.04.004"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2015.31"},{"key":"e_1_3_2_1_46_1","volume-title":"Characterizing the Usage, Evolution and Impact of Java Annotations in Practice","author":"Yu Zhongxing","year":"2019","unstructured":"Zhongxing Yu , Chenggang Bai , Lionel Seinturier , and Martin Monperrus . 2019. Characterizing the Usage, Evolution and Impact of Java Annotations in Practice . IEEE TSE: Transactions on Software Engineering ( 2019 ). https:\/\/hal.inria.fr\/hal-02091516 Zhongxing Yu, Chenggang Bai, Lionel Seinturier, and Martin Monperrus. 2019. Characterizing the Usage, Evolution and Impact of Java Annotations in Practice. IEEE TSE: Transactions on Software Engineering (2019). https:\/\/hal.inria.fr\/hal-02091516"}],"event":{"name":"ESEM '20: ACM \/ IEEE International Symposium on Empirical Software Engineering and Measurement","location":"Bari Italy","acronym":"ESEM '20","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","IEEE CS"]},"container-title":["Proceedings of the 14th ACM \/ IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3382494.3410676","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3382494.3410676","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:38:26Z","timestamp":1750199906000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3382494.3410676"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,10,5]]},"references-count":45,"alternative-id":["10.1145\/3382494.3410676","10.1145\/3382494"],"URL":"https:\/\/doi.org\/10.1145\/3382494.3410676","relation":{},"subject":[],"published":{"date-parts":[[2020,10,5]]},"assertion":[{"value":"2020-10-23","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}