Combining functional and imperative programming for multicore software: An empirical study evaluating Scala and Java

Author(s): Pankratius, Victor ; Karlsruhe Inst. of Technol., Karlsruhe, Germany ; Schmidt, F. ; Garreton, G.
Venue: Software Engineering (ICSE), 2012 34th International Conference on
Date: 2-9 June 2012

Type of Experiement: Case Study
Sample Size: 13
Class/Experience Level: Graduate Student
Participant Selection: responded to the surveyors
Data Collection Method: Code Metric


In this paper, two researchers want to determine differences in different software metrics when programming in Scala versus java. Some metrics include performance (especially with multicore systems), conciseness, and overall programmer satisfaction. Scala is a programming language that compiles to the JVM (like Java) but includes some functional aspects not available in Java.

The study they performed was on thirteen masters students. They were split up into different teams. Half of the teams programmed in Java while the other half programmed in Scala. One of the main metrics they wanted to gather from the research was how the two langauges performed on various programs on multicore systems. In addition they were able to gather metrics on non-multicore performance, conciseness, programming time, programmer satisfaction, and others.

As a result of this study, they found that Scala is just as fast as Java in most cases. Though, their main study found that Java scales better on parallel hardware. Additionally Scala is indeed more concise than Java.