An Empirical Study of End-User Programmers in the Computer Music Community

Computer musicians are a community of end-user programmers who often use visual programming languages such as Max/MSP or Pure Data to realize their musical compositions. This research study conducts a multifaceted analysis of the software development practices of computer musicians when programming in these visual music-oriented languages. A statistical analysis of project metadata harvested from software repositories hosted on GitHub reveals that in comparison to the general population of software developers, computer musicians' repositories have less commits, less frequent commits, more commits on weekends, yet similar numbers of bug reports and similar numbers of contributing authors. Analysis of source code in these repositories reveals that the vast majority of code can be reconstructed from duplicate fragments. Finally, these results are corroborated by a survey of computer musicians and interviews with individuals in this end-user community. Based on this analysis and feedback from computer musicians we find that there are many avenues where software engineering can be applied to help aid this community of end-user programmers.

[1]  Christopher Scaffidi,et al.  Towards aiding within-patch information foraging by end-user programmers , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[2]  Elmar Jürgens,et al.  Index-based code clone detection: incremental, distributed, scalable , 2010, 2010 IEEE International Conference on Software Maintenance.

[3]  David G. Hendry,et al.  Creating, comprehending and explaining spreadsheets: a cognitive interpretation of what discretionary users think of the spreadsheet model , 1994, Int. J. Hum. Comput. Stud..

[4]  Rainer Koschke,et al.  Clone Detection Using Abstract Syntax Suffix Trees , 2006, 2006 13th Working Conference on Reverse Engineering.

[5]  Georgios Gousios,et al.  The GHTorent dataset and tool suite , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[6]  Kathryn T. Stolee,et al.  End-User Programmers and their Communities: An Artifact-based Analysis , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[7]  Gregg Rothermel,et al.  End-user software engineering with assertions in the spreadsheet paradigm , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Brad A. Myers,et al.  Six Learning Barriers in End-User Programming Systems , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[9]  Mark Harman,et al.  Issues in clone classification for dataflow languages , 2010, IWSC '10.

[10]  Christopher Alex McLean,et al.  Artist-programmers and programming languages for the arts , 2011 .

[11]  Renato De Mori,et al.  Pattern matching for clone and concept detection , 2004, Automated Software Engineering.

[12]  Gerhard Fischer,et al.  Meta-design: A Framework for the Future of End-User Development , 2006, End User Development.

[13]  J. Howard Johnson,et al.  Identifying redundancy in source code using fingerprints , 1993, CASCON.

[14]  Mary Shaw,et al.  The state of the art in end-user software engineering , 2011, ACM Comput. Surv..

[15]  James R. Cordy,et al.  Models are code too: Near-miss clone detection for Simulink models , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[16]  Peter Johnson,et al.  Constrain yourselves: exploring end user development in support for musical creativity , 2007, C&C '07.

[17]  Georgios Gousios,et al.  GHTorrent: Github's data from a firehose , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[18]  Miller Puckette,et al.  Max at Seventeen , 2002, Computer Music Journal.

[19]  Margaret Burnett,et al.  SOFTWARE ENGINEERING FOR VISUAL PROGRAMMING LANGUAGES , 2001 .

[20]  Elmar Jürgens,et al.  CloneDetective - A workbench for clone detection research , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[21]  Analía Amandi,et al.  Personalized detection of user intentions , 2011, Knowl. Based Syst..

[22]  Chanchal Kumar Roy,et al.  Scenario-Based Comparison of Clone Detection Techniques , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[23]  Martin Erwig,et al.  GoalDebug: A Spreadsheet Debugger for End Users , 2007, 29th International Conference on Software Engineering (ICSE'07).

[24]  Elmar Jürgens,et al.  Index-based model clone detection , 2011, IWSC '11.

[25]  Bernhard Schätz,et al.  Model clone detection in practice , 2010, IWSC '10.

[26]  Mark Harman,et al.  Cloning in Max/MSP Patches , 2011, ICMC.

[27]  Sara Reese Hedberg Executive Insight: Is AI Going Mainstream at Last? A Look Inside Microsoft Research , 1998, IEEE Intell. Syst..

[28]  Gerhard Fischer,et al.  End-User Development and Meta-design: Foundations for Cultures of Participation , 2009, IS-EUD.

[29]  Mary Shaw,et al.  Estimating the numbers of end users and end user programmers , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[30]  Daniela E. Damian,et al.  The promises and perils of mining GitHub , 2009, MSR 2014.

[31]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[32]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[33]  Giuliano Antoniol,et al.  Comparison and Evaluation of Clone Detection Tools , 2007, IEEE Transactions on Software Engineering.

[34]  Margaret M. Burnett,et al.  End-user programming in the wild: A field study of CoScripter scripts , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[35]  Bernhard Schätz,et al.  Clone detection in automotive model-based development , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[36]  Hoan Anh Nguyen,et al.  Complete and accurate clone detection in graph-based models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[37]  Eric Horvitz,et al.  The Lumière Project: Bayesian User Modeling for Inferring the Goals and Needs of Software Users , 1998, UAI.

[38]  Joel Chadabe,et al.  Remarks on Computer Music Culture , 2000, Computer Music Journal.

[39]  Premkumar T. Devanbu,et al.  On the naturalness of software , 2016, Commun. ACM.

[40]  Peter Johnson,et al.  An Exploration of Constraints and End User Development in Environments for Creative Tasks , 2008, Int. J. Hum. Comput. Interact..

[41]  Daniel M. Germán,et al.  The promises and perils of mining git , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[42]  Margaret M. Burnett,et al.  Invited research overview: end-user programming , 2006, CHI Extended Abstracts.

[43]  Gerhard Fischer,et al.  Meta-design , 2004, Commun. ACM.