The EAPLS Best Paper Award 2020 is awarded to the paper "An Empirical Study on the Use and Misuse of Java 8 Streams", by Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh (Ph.D. '16 computer science) and Baishakhi Ray.
This paper has been published in the proceedings of the 23rd International Conference on Fundamental Approaches to Software Engineering (FASE 2020).
Congratulations to the authors!
The abstract of the paper:
Streaming APIs allow for big data processing of native data structures by providing MapReduce-like operations over these structures. However, unlike traditional big data systems, these data structures typically reside in shared memory accessed by multiple cores. Although popular, this emerging hybrid paradigm opens the door to possibly detrimental behavior, such as thread contention and bugs related to non-execution and non-determinism. This study explores the use and misuse of a popular streaming API, namely, Java 8 Streams. The focus is on how developers decide whether or not to run these operations sequentially or in parallel and bugs both specific and tangential to this paradigm. Our study involved analyzing 34 Java projects and 5:53 million lines of code, along with 719 manually examined code patches. Various automated, including interprocedural static analysis, and manual methodologies were employed. The results indicate that streams are pervasive, parallelization is not widely used, and performance is a crosscutting concern that accounted for the majority of fixes. We also present coincidences that both confirm and contradict the results of related studies. The study advances our understanding of streams, as well as benefits practitioners, programming language and API designers, tool developers, and educators alike.
Link to EAPLS announcement