skip to main content
10.1145/2509578.2509585acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Usable live programming

Published: 29 October 2013 Publication History

Abstract

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.

References

[1]
U. A. Acar. Self-adjusting computation: (an overview). In Proc. of Partial Evaluation and Program Manipulation (PEPM), pages 1--6, 2009.
[2]
S. P. Booth and S. B. Jones. Walk backwards to happiness - debugging by time travel. In Proc. of Automated and Algorithmic Debugging, pages 171--183, 1997.
[3]
A. Bragdon, S. P. Reiss, R. Zeleznik, S. Karumuri, W. Cheung, J. Kaplan, C. Coleman, F. Adeputra, and J. J. LaViola, Jr. Code bubbles: rethinking the user interface paradigm of integrated development environments. In Proc. of ICSE, pages 455--464, 2010.
[4]
S. Burckhardt, D. Leijen, C. Sadowski, J. Yi, and T. Ball. Two for the price of one: a model for parallel and incremental computation. In Proc. of OOPSLA, pages 427--444, 2011.
[5]
S. Burckhardt, M. Fahndrich, P. de Halleux, J. Kato, S. McDirmid, M. Moskal, and N. Tillmann. It's alive! Continuous feedback in UI programming. In Proc. of PLDI, 2013. To appear.
[6]
M. M. Burnett, J. W. Atwood Jr, and Z. T. Welch. Implementing level 4 liveness in declarative visual programming languages. In Proc. of the IEEE Symposium on Visual Languages, pages 126--134, 1998.
[7]
J. Edwards. Example centric programming. In Proc. of OOPSLA, pages 84--91, Dec. 2004.
[8]
A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983.
[9]
C. Granger. Light Table - a reactive work surface for programming. www.kickstarter.com/projects/ibdknox/light-table, 2012.
[10]
C. M. Hancock. Real-time programming and the big ideas of computational literacy. PhD thesis, Massachusetts Institute of Technology, 2003.
[11]
J. Kato, S. McDirmid, and X. Cao. Dejavu: integrated support for developing interactive camera-based programs. In Proc. of UIST, pages 189--196, 2012.
[12]
B. W. Kernighan. UNIX for Beginners. Bell Telephone Laboratories, Inc., 1979.
[13]
M. Kölling, B. Quig, A. Patterson, and J. Rosenberg. The BlueJ system and its pedagogy. Journal of Computer Science Education, 13 (4), Dec. 2003.
[14]
A. Lienhard, T. Gîrba, and O. Nierstrasz. Practical object-oriented back-in-time debugging. In Proc. of ECOOP, pages 592--615, 2008.
[15]
J. H. Maloney and R. B. Smith. Directness and liveness in the Morphic user interface construction environment. In Proc. of UIST, pages 21--28, nov 1995.
[16]
J. McCarthy. LISP 1.5 Programmer's Manual. The MIT Press, 1962.
[17]
S. McDirmid. Living it up with a live programming language. In Proc. of OOPSLA Onward! pages 623--638, October 2007.
[18]
Meso group. VVVV - a multipurpose toolkit. www.vvv.org, 2009.
[19]
R. Perera, U. A. Acar, J. Cheney, and P. B. Levy. Functional programs that explain their work. In Proc. of ICFP, pages 365--376, 2012.
[20]
F. Pluquet, S. Langerman, and R. Wuyts. Executing code in the past: efficient in-memory object graph versioning. In Proc. of OOPSLA, pages 391--408, 2009.
[21]
G. Pothier, E. Tanter, and J. Piquer. Scalable omniscient debugging. In Proc. of OOPSLA, pages 535--552, 2007.
[22]
M. Puckette. Pure Data: another integrated computer music environment. In Proc. of International Computer Music Conference, pages 37--41, 1996.
[23]
S. P. Reiss. Graphical program development with pecan program development systems. In Proc. of Practical Software Development Environments, pages 30--41, 1984.
[24]
J. Resig. Redefining the introduction to computer science. ejohn.org/blog/introducing-khan-cs, 2012.
[25]
J. Ressia, A. Bergel, and O. Nierstrasz. Object-centric debugging. In Proc. of ICSE, pages 485--495, 2012.
[26]
A. Sorensen and H. Gardner. Programming with time: cyber-physical programming with Impromptu. In Proc. of SPLASH Onward!, pages 822--834, 2010.
[27]
S. L. Tanimoto. Viva: A visual language for image processing. Journal on Visual Language Computing, 1 (2): 127--139, 1990.
[28]
D. Ungar, H. Lieberman, and C. Fry. Debugging and the experience of immediacy. CACM, 40 (4): 38--43, Apr. 1997.
[29]
B. Victor. Inventing on principle. Invited talk at the Canadian University Software Engineering Conference (CUSEC), Jan. 2012.
[30]
B. Victor. Learnable programming. worrydream.com/LearnableProgramming, Sept. 2012.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Onward! 2013: Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
October 2013
218 pages
ISBN:9781450324724
DOI:10.1145/2509578
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 October 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugging
  2. live programming

Qualifiers

  • Research-article

Conference

SPLASH '13
Sponsor:

Acceptance Rates

Onward! 2013 Paper Acceptance Rate 11 of 27 submissions, 41%;
Overall Acceptance Rate 40 of 105 submissions, 38%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)79
  • Downloads (Last 6 weeks)10
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media