Exploratory and Live, Programming and Coding: A Literature Study Comparing Perspectives on Liveness

Various programming tools, languages, and environments give programmers the impression of changing a program while it is running. This experience of liveness has been discussed for over two decades and a broad spectrum of research on this topic exists. Amongst others, this work has been carried out in the communities around three major ideas which incorporate liveness as an important aspect: live programming, exploratory programming, and live coding. While there have been publications on the focus of each particular community, the overall spectrum of liveness across these three communities has not been investigated yet. Thus, we want to delineate the variety of research on liveness. At the same time, we want to investigate overlaps and differences in the values and contributions between the three communities. Therefore, we conducted a literature study with a sample of 212 publications on the terms retrieved from three major indexing services. On this sample, we conducted a thematic analysis regarding the following aspects: motivation for liveness, application domains, intended outcomes of running a system, and types of contributions. We also gathered bibliographic information such as related keywords and prominent publications. Besides other characteristics the results show that the field of exploratory programming is mostly about technical designs and empirical studies on tools for general-purpose programming. In contrast, publications on live coding have the most variety in their motivations and methodologies with a majority being empirical studies with users. As expected, most publications on live coding are applied to performance art. Finally, research on live programming is mostly motivated by making programming more accessible and easier to understand, evaluating their tool designs through empirical studies with users. In delineating the spectrum of work on liveness, we hope to make the individual communities more aware of the work of the others. Further, by giving an overview of the values and methods of the individual communities, we hope to provide researchers new to the field of liveness with an initial overview.

[1]  Vijay K. Vaishnavi,et al.  Theory Development in Design Science Research: Anatomy of a Research Project , 2008 .

[2]  Randall B. Smith,et al.  Directness and liveness in the morphic user interface construction environment , 1995, UIST '95.

[3]  David W. Sandberg Smalltalk and exploratory programming , 1988, SIGP.

[4]  B. Sheil Power tools for programmers , 1986 .

[5]  Maria J Grant,et al.  A typology of reviews: an analysis of 14 review types and associated methodologies. , 2009, Health information and libraries journal.

[6]  Christopher D. Hundhausen,et al.  An experimental study of the impact of visual semantic feedback on novice programming , 2007, J. Vis. Lang. Comput..

[7]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[8]  Andrew R. Brown,et al.  Aa-cell in Practice: an Approach to Musical Live coding , 2007, ICMC.

[9]  Craig Chambers,et al.  The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages , 1992 .

[10]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA '89.

[11]  Steven L. Tanimoto,et al.  A perspective on the evolution of live programming , 2013, 2013 1st International Workshop on Live Programming (LIVE).

[12]  Mitchel Resnick,et al.  Real-time programming and the big ideas of computational literacy , 2003 .

[13]  Giovanni Mori,et al.  Analysing Live Coding with Ethnographic Approach - A New Perspective , 2015 .

[14]  Steven L. Tanimoto,et al.  VIVA: A visual language for image processing , 1990, J. Vis. Lang. Comput..

[15]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[16]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[17]  Sebastian Burckhardt,et al.  It's alive! continuous feedback in UI programming , 2013, PLDI.

[18]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[19]  Nick Collins,et al.  Live Coding of Consequence , 2011, Leonardo.

[20]  Alan F. Blackwell,et al.  The Programming Language as a Musical Instrument , 2005, PPIG.

[21]  Andrew Sorensen,et al.  Coding livecoding , 2014, CHI.

[22]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[23]  JoAnn Kuchera-Morin,et al.  Gibber: Live coding audio in the Browser , 2012, ICMC.

[24]  Christopher D. Hundhausen,et al.  What You See Is What You Code: A "live" algorithm development and visualization environment for novice learners , 2007, J. Vis. Lang. Comput..

[25]  David A. Patterson,et al.  Architecture of SOAR: Smalltalk on a RISC , 1984, ISCA '84.

[26]  Chris Hancock,et al.  Toward a unified paradigm for constructing and understanding robot processes , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[27]  Jason Trenouth A Survey of Exploratory Software Development , 1991, Comput. J..

[28]  Jan O. Borchers,et al.  How live coding affects developers' coding behavior , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[29]  Jonathan J. Cadiz,et al.  Does continuous visual feedback aid debugging in direct-manipulation programming systems? , 1997, CHI.

[30]  Alfonso Fuggetta,et al.  A classification of CASE technology , 1993, Computer.

[31]  Sean McDirmid,et al.  Living it up with a live programming language , 2007, OOPSLA.

[32]  Margaret M. Burnett,et al.  Implementing level 4 liveness in declarative visual programming languages , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[33]  J. Knottnerus,et al.  Real world research. , 2010, Journal of clinical epidemiology.

[34]  Nick Collins,et al.  Live coding in laptop performance , 2003, Organised Sound.

[35]  Scott Wallace,et al.  Etoys for One Laptop Per Child , 2009, 2009 Seventh International Conference on Creating, Connecting and Collaborating through Computing.

[36]  John McCarthy,et al.  History of LISP , 1978, SIGP.

[37]  Andrew Sorensen,et al.  Systems level liveness with extempore , 2017, Onward!.