Design of an Empirical Study for Comparing the Usability of Concurrent Programming Languages

The recent turn towards multicore processing architectures has made concurrency an important part of mainstream software development. As a result, an increasing number of developers have to learn to write concurrent programs, a task that is known to be hard even for the expert. Language designers are therefore working on languages that promise to make concurrent programming "easier". However, the claim that a new language is more usable than another cannot be supported by purely theoretical considerations, but calls for empirical studies. In this paper, we present the design of a study to compare concurrent programming languages with respect to comprehending and debugging existing programs and writing correct new programs. A critical challenge for such a study is avoiding the bias that might be introduced during the training phase and when interpreting participants' solutions. We address these issues by the use of self-study material and an evaluation scheme that exposes any subjective decisions of the corrector, or eliminates them altogether. We apply our design to a comparison of two object-oriented languages for concurrency, multithreaded Java and SCOOP (Simple Concurrent Object-Oriented Programming), in an academic setting. We obtain results in favor of SCOOP even though the study participants had previous training in writing multithreaded Java programs.

[1]  Marsha Chechik,et al.  The SCOOP Concurrency Model in Java-like Languages , 2009, CPA.

[2]  Jeffrey C. Carver,et al.  Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[3]  Vladimir I. Levenshtein,et al.  Binary codes capable of correcting deletions, insertions, and reversals , 1965 .

[4]  B. Bloom Taxonomy of educational objectives , 1956 .

[5]  Paul H. Lewis,et al.  Comparing programming paradigms: an evaluation of functional and object-oriented programs , 1996, Softw. Eng. J..

[6]  Piotr Nienaltowski,et al.  Practical framework for contract-based concurrent object-oriented programming , 2007 .

[7]  Mohamed M. Zahran,et al.  Productivity analysis of the UPC language , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[8]  Jonathan Schaeffer,et al.  Enterprise in context: assessing the usability of parallel programming environments , 1993, CASCON.

[9]  Bertrand Meyer,et al.  Empirical assessment of languages for teaching concurrency: Methodology and application , 2011, 2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T).

[10]  Wilson Ifill,et al.  Integrating and Extending JCSP , .

[11]  Jafar Habibi,et al.  A Comparison of Metric-Based and Empirical Approaches for Cognitive Analysis of Modeling Languages , 2009, Fundam. Informaticae.

[12]  Lionel C. Briand,et al.  Concurrent Contracts for Java in JML , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[13]  Uzi Vishkin,et al.  A pilot study to compare programming effort for two parallel programming models , 2007, J. Syst. Softw..

[14]  Jonathan Schaeffer,et al.  An experiment to measure the usability of parallel programming systems , 1996, Concurr. Pract. Exp..

[15]  Caitlin Sadowski,et al.  The last mile: parallel programming and usability , 2010, FoSER '10.

[16]  Matthew B. Dwyer,et al.  Extending JML for Modular Specification and Verification of Multi-threaded Programs , 2005, ECOOP.

[17]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[18]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[19]  Luca Cardelli,et al.  Modern concurrency abstractions for C# , 2002, TOPL.

[20]  Bertrand Meyer,et al.  Design of an empirical study for comparing the usability of concurrent programming languages , 2013, Inf. Softw. Technol..

[21]  Emmett Witchel,et al.  Is transactional programming actually easier? , 2010, PPoPP '10.

[22]  T. T. Carey,et al.  Towards empirical studies of programming in new paradigms , 1988, CSC '88.