skip to main content
10.1145/2491956.2462170acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

It's alive! continuous feedback in UI programming

Published: 16 June 2013 Publication History

Abstract

Live programming allows programmers to edit the code of a running program and immediately see the effect of the code changes. This tightening of the traditional edit-compile-run cycle reduces the cognitive gap between program code and execution, improving the learning experience of beginning programmers while boosting the productivity of seasoned ones. Unfortunately, live programming is difficult to realize in practice as imperative languages lack well-defined abstraction boundaries that make live programming responsive or its feedback comprehensible.
This paper enables live programming for user interface programming by cleanly separating the rendering and non-rendering aspects of a UI program, allowing the display to be refreshed on a code change without restarting the program. A type and effect system formalizes this separation and provides an evaluation model that incorporates the code update step. By putting live programming on a more formal footing, we hope to enable critical and technical discussion of live programming systems.

References

[1]
TouchDevelop website and web application (Microsoft Research).texttthttp://www.touchdevelop.com.
[2]
U. A. Acar. Self-adjusting computation: (an overview). In Proc. of Partial Evaluation and Program Manipulation (PEPM), pages 1--6, 2009.
[3]
J. L. Armstrong and S. R. Virding. Erlang - an experimental telephony programming language. In Proc. of International Switching Symposium, pages 2--7, 1990.
[4]
B. Atkinson. Hypercard. Apple Computer, 1987.
[5]
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.
[6]
M. M. Burnett, M. J. Baker, C. Bohus, P. Carlson, P. J. V. Zee, and S. Yang. The scaling-up problem for visual programming languages. Technical report, Oregon State University, 1994.
[7]
J. Edwards. Subtext: uncovering the simplicity of programming. In Proc. of OOPSLA Onward!, pages 505--518, 2005.
[8]
R. S. Fabry. How to design a system in which modules can be changed on the fly. In Proc. of ICSE, pages 470--476, 1976.
[9]
A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983.
[10]
C. Granger. Light Table - a reactive work surface for programming.texttthttp://www.kickstarter.com/projects/ibdknox/-light-table, 2012.
[11]
C. M. Hancock. Real-time programming and the big ideas of computational literacy. PhD thesis, Massachusetts Institute of Technology, 2003. AAI0805688.
[12]
C. M. Hayden, E. K. Smith, M. Denchev, M. Hicks, and J. S. Foster. Kitsune: efficient, general-purpose dynamic software updating for C. In Proc. of OOPSLA, Oct. 2012.
[13]
Z. Hemel and E. Visser. Declaratively programming the mobile web with mobl. In Object oriented programming systems languages and applications (OOPSLA), pages 695--712. ACM, 2011.
[14]
H. Lieberman and C. Fry. Bridging the gulf between code and behavior in programming. In Proc. of CHI, pages 480--486, 1995.
[15]
J. M. Lucassen and D. K. Gifford. Polymorphic effect systems. In In Principles of Programming Languages (POPL, pages 47--57. ACM Press, 1988.
[16]
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.
[17]
S. McDirmid. Living it up with a live programming language. In Proc. of OOPSLA Onward!, pages 623--638, October 2007.
[18]
C. Muratori. Immediate-mode graphical user interfaces.textttwww.molly-rocket.com/861, 2005.
[19]
D. A. Norman and S. W. Draper. User Centered System Design; New Perspectives on Human-Computer Interaction. L. Erlbaum Associates Inc., 1986.
[20]
M. Puckette. Pure Data: another integrated computer music environment. In Proc. of International Computer Music Conference, pages 37--41, 1996.
[21]
T. Reenskaug. Thing-model-view-editor an example from a planningsystem,texttthttp://heim.ifi.uio.no/~trygver/1979. Technical report, Xerox PARC, 1979.
[22]
J. Resig. Khan Academy - computer science.texttthttp://www.khan-academy.org/cs.
[23]
E. Sandewall. Programming in an interactive environment: the "LISP" experience. ACM Computing Surveys, 10(1):35--71, Mar. 1978.
[24]
B. Shneiderman. Direct manipulation. a step beyond programming languages. IEEE Transactions on Computers, 16(8):57--69, August 1983.
[25]
N. Tillmann, M. Moskal, J. de Halleux, and M. Fahndrich. TouchDevelop - programming cloud-connected mobile devices via touchscreen. In Proc. of SPLASH Onward!, 2011.
[26]
D. Ungar and R. B. Smith. Self: the power of simplicity. In Proc. of OOPSLA, pages 227--242, December 1987.
[27]
B. Victor. Inventing on principle. Invited talk at the Canadian University Software Engineering Conference (CUSEC), Jan. 2012.

Cited By

View all
  • (2024)Meerkat: Distributed Reactive Live Semantics with Causal ConsistencyCompanion Proceedings of the 2024 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3689491.3691822(52-53)Online publication date: 20-Oct-2024
  • (2024)UNFOLD: Enabling Live Programming for Debugging GUI Applications2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00041(306-316)Online publication date: 2-Sep-2024
  • (2023)Octave: An End-User Programming Environment for Analysis of Spatiotemporal Data for Construction Students2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00014(51-59)Online publication date: 3-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2013
546 pages
ISBN:9781450320146
DOI:10.1145/2491956
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 48, Issue 6
    PLDI '13
    June 2013
    515 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2499370
    Issue’s Table of Contents
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: 16 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. graphical user interface
  2. live programming

Qualifiers

  • Research-article

Conference

PLDI '13
Sponsor:

Acceptance Rates

PLDI '13 Paper Acceptance Rate 46 of 267 submissions, 17%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)67
  • Downloads (Last 6 weeks)3
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Meerkat: Distributed Reactive Live Semantics with Causal ConsistencyCompanion Proceedings of the 2024 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3689491.3691822(52-53)Online publication date: 20-Oct-2024
  • (2024)UNFOLD: Enabling Live Programming for Debugging GUI Applications2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00041(306-316)Online publication date: 2-Sep-2024
  • (2023)Octave: An End-User Programming Environment for Analysis of Spatiotemporal Data for Construction Students2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00014(51-59)Online publication date: 3-Oct-2023
  • (2021)Glinda: Supporting Data Science with Live Programming, GUIs and a Domain-specific LanguageProceedings of the 2021 CHI Conference on Human Factors in Computing Systems10.1145/3411764.3445267(1-11)Online publication date: 6-May-2021
  • (2021)Shortening Feedback Loops in a Live Game Development Environment2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC51201.2021.9576454(1-5)Online publication date: 10-Oct-2021
  • (2021)Edit - Run Behavior in Programming and Debugging2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC51201.2021.9576170(1-10)Online publication date: 10-Oct-2021
  • (2021)Exploring Visual Programming Concepts for Smart Textiles: The MYOW Experience2021 7th International HCI and UX Conference in Indonesia (CHIuXiD)10.1109/CHIuXiD54398.2021.9650676(16-21)Online publication date: 3-Nov-2021
  • (2020)Programming with a read-eval-synth loopProceedings of the ACM on Programming Languages10.1145/34282274:OOPSLA(1-30)Online publication date: 13-Nov-2020
  • (2020)Rethinking programming “environment”: technical and social environment design toward convivial computingCompanion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming10.1145/3397537.3397544(149-157)Online publication date: 23-Mar-2020
  • (2019)Programs in the Palm of your HandProceedings of the 18th ACM International Conference on Interaction Design and Children10.1145/3311927.3323138(227-236)Online publication date: 12-Jun-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media