Comparative analysis of Kotlin coroutines with Java and Scala in parallel programming

Adrian Zieliński

adrian.zielinski@pollub.edu.pl
Lublin University of Technology (Poland)

Abstract

The article presents a comparison of Kotlin coroutines with analogous solutions in Java and Scala in parallel programming using chosen metric and non-metric criteria. For that purpose, a multi-module project with corresponding implementations of selected algorithms in all of the three languages was created and then analyzed. The studies were preceded by a description of the created project.


Keywords:

kotlin, parallel programming, jvm, coroutines

Parallel Computing: Background, https://www.intel.com/pressroom/kits/upcrc/ParallelComputing_backgrounder.pdf, [22.05.2020].
  Google Scholar

M. E. Conway, Design of a Separable Transition Diagram Compiler, Communications of the ACM 6.7 (1963) 396-408.
DOI: https://doi.org/10.1145/366663.366704   Google Scholar

A. L. De Moura, R. Ierusalimschy, Revisiting Coroutines, ACM Transactions on Programming Languages and Systems 31.2 (2009) 1-31.
  Google Scholar

D. Racordon D, Coroutines with Higher Order Functions, arXiv preprint arXiv:1812.08278 (2018).
  Google Scholar

A. Ohlsson, E. Leffler E, A Coroutine Extension to Java, (2018).
  Google Scholar

D. E. Damasceno Costa, C. Bezemer, P. Leitner, A. Andrzejak, What's Wrong With My Benchmark Results? Studying Bad Practices in JMH Benchmarks, IEEE Transactions on Software Engineering (2019).
DOI: https://doi.org/10.1109/TSE.2019.2925345   Google Scholar

M. E. O'Neill, The Genuine Sieve of Eratosthenes, Journal of Functional Programming 19.1 (2009) 95-106.
DOI: https://doi.org/10.1017/S0956796808007004   Google Scholar

Sieve of Eratostheneses animation, https://en.wikipedia.org/wiki/File:Sieve_of_Eratosthenes_animation.gif, [22.05.2020].
  Google Scholar

J. S. Greenfield, A Proof for a QuickHull Algorithm (1990).
  Google Scholar

Quickhull example, https://en.wikipedia.org/wiki/ File:Quickhull_example3.svg, [22.05.2020].
  Google Scholar

Quickhull example, https://en.wikipedia.org/wiki/ File:Quickhull_example6.svg, [22.05.2020]..
  Google Scholar

Quickhull example, https://en.wikipedia.org/wiki/ File:Quickhull_example7.svg, [22.05.2020]
  Google Scholar

D. Nam, A. Horvath, A. Macvean, B. Myers, B. Vasilescu, MARBLE: Mining for Boilerplate Code to Identify API Usability Problems, 2019 34th IEEE/ACM International Conference on Automated Software Engineering (2019) 615-627.
  Google Scholar

Why are Scala for loops slower than logically identical while loops?, https://stackoverflow.com/questions/21373514/why-are-scala-for-loops-slower-than-logically-identical-while-loops, [22.05.2020].
  Google Scholar

Micro-optimizing your Scala code, https://www.lihaoyi.com/post/MicrooptimizingyourScalacode.html#speed-through-while-loops, [22.05.2020].
  Google Scholar

Download


Published
2020-09-30

Cited by

Zieliński, A. (2020). Comparative analysis of Kotlin coroutines with Java and Scala in parallel programming. Journal of Computer Sciences Institute, 16, 241–246. https://doi.org/10.35784/jcsi.2002

Authors

Adrian Zieliński 
adrian.zielinski@pollub.edu.pl
Lublin University of Technology Poland

Statistics

Abstract views: 546
PDF downloads: 381