skip to main content
research-article

It's alive! continuous feedback in UI programming

Published:16 June 2013Publication History
Skip Abstract Section

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.Google ScholarGoogle Scholar
  2. U. A. Acar. Self-adjusting computation: (an overview). In Proc. of Partial Evaluation and Program Manipulation (PEPM), pages 1--6, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. L. Armstrong and S. R. Virding. Erlang - an experimental telephony programming language. In Proc. of International Switching Symposium, pages 2--7, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  4. B. Atkinson. Hypercard. Apple Computer, 1987.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Edwards. Subtext: uncovering the simplicity of programming. In Proc. of OOPSLA Onward!, pages 505--518, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Granger. Light Table - a reactive work surface for programming.texttthttp://www.kickstarter.com/projects/ibdknox/-light-table, 2012.Google ScholarGoogle Scholar
  11. C. M. Hancock. Real-time programming and the big ideas of computational literacy. PhD thesis, Massachusetts Institute of Technology, 2003. AAI0805688. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. H. Lieberman and C. Fry. Bridging the gulf between code and behavior in programming. In Proc. of CHI, pages 480--486, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. M. Lucassen and D. K. Gifford. Polymorphic effect systems. In In Principles of Programming Languages (POPL, pages 47--57. ACM Press, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. McDirmid. Living it up with a live programming language. In Proc. of OOPSLA Onward!, pages 623--638, October 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. C. Muratori. Immediate-mode graphical user interfaces.textttwww.molly-rocket.com/861, 2005.Google ScholarGoogle Scholar
  19. D. A. Norman and S. W. Draper. User Centered System Design; New Perspectives on Human-Computer Interaction. L. Erlbaum Associates Inc., 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Puckette. Pure Data: another integrated computer music environment. In Proc. of International Computer Music Conference, pages 37--41, 1996.Google ScholarGoogle Scholar
  21. T. Reenskaug. Thing-model-view-editor an example from a planningsystem,texttthttp://heim.ifi.uio.no/~trygver/1979. Technical report, Xerox PARC, 1979.Google ScholarGoogle Scholar
  22. J. Resig. Khan Academy - computer science.texttthttp://www.khan-academy.org/cs.Google ScholarGoogle Scholar
  23. E. Sandewall. Programming in an interactive environment: the "LISP" experience. ACM Computing Surveys, 10(1):35--71, Mar. 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. Shneiderman. Direct manipulation. a step beyond programming languages. IEEE Transactions on Computers, 16(8):57--69, August 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. D. Ungar and R. B. Smith. Self: the power of simplicity. In Proc. of OOPSLA, pages 227--242, December 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. Victor. Inventing on principle. Invited talk at the Canadian University Software Engineering Conference (CUSEC), Jan. 2012.Google ScholarGoogle Scholar

Index Terms

  1. It's alive! continuous feedback in UI programming

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        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
        • 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

        Copyright © 2013 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 16 June 2013

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!