Usable live programming

Programming today involves code editing mixed with bouts of debugging to get feedback on code execution. For programming to be more fluid, editing and debugging should occur concurrently as live programming. This paper describes how live execution feedback can be woven into the editor by making places in program execution, not just code, navigable so that evaluation results can be probed directly within the code editor. A pane aside the editor also traces execution with entries that are similarly navigable, enabling quick problem diagnosis. Both probes and traces are refreshed continuously during editing, and are easily configured based on debugging needs. We demonstrate the usefulness of this live programming experience with a prototype.

[1]  James Cheney,et al.  Functional programs that explain their work , 2012, ICFP.

[2]  Andrew Sorensen,et al.  Programming with time: cyber-physical programming with impromptu , 2010, OOPSLA.

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

[4]  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).

[5]  S Puckette Miller,et al.  Pure Data : another integrated computer music environment , 1996 .

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

[7]  Umut A. Acar Self-adjusting computation: (an overview) , 2009, PEPM '09.

[8]  Oscar Nierstrasz,et al.  Practical Object-Oriented Back-in-Time Debugging , 2008, ECOOP.

[9]  Jonathan Edwards,et al.  Example centric programming , 2004, SIGP.

[10]  John McCarthy,et al.  LISP 1.5 Programmer's Manual , 1962 .

[11]  Oscar Nierstrasz,et al.  Object-centric debugging , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[12]  Simon B. Jones,et al.  Walk Backwards to Happiness - Debugging by Time Travel , 1997, AADEBUG.

[13]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.

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

[15]  Michael Hucka,et al.  Programmer's Manual , 2004 .

[16]  Xiang Cao,et al.  DejaVu: integrated support for developing interactive camera-based programs , 2012, UIST.

[17]  Sebastian Burckhardt,et al.  Two for the price of one: a model for parallel and incremental computation , 2011, OOPSLA '11.

[18]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[19]  Éric Tanter,et al.  Processing , 1988 .

[20]  Joseph J. LaViola,et al.  Code bubbles: rethinking the user interface paradigm of integrated development environments , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

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

[22]  H. D. Parker,et al.  The Bell Telephone Laboratories, Inc. , 1925, Journal of the A.I.E.E..

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

[24]  Henry Lieberman,et al.  Debugging and the experience of immediacy , 1997, CACM.

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