skip to main content
10.1145/3180155.3180200acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

The road to live programming: insights from the practice

Published: 27 May 2018 Publication History

Abstract

Live Programming environments allow programmers to get feedback instantly while changing software. Liveness is gaining attention among industrial and open-source communities; several IDEs offer high degrees of liveness. While several studies looked at how programmers work during software evolution tasks, none of them consider live environments. We conduct such a study based on an analysis of 17 programming sessions of practitioners using Pharo, a mature Live Programming environment. The study is complemented by a survey and subsequent analysis of 16 programming sessions in additional languages, e.g., JavaScript. We document the approaches taken by developers during their work. We find that some liveness features are extensively used, and have an impact on the way developers navigate source code and objects in their work.

References

[1]
K. Eliott, Swift Playgrounds---Interactive Awesomeness (2016). URL http://bit.ly/Swift-Playgrounds
[2]
C. Connect, Code Connect is joining Microsoft (2016). URL http://comealive.io/Code-Connect-Joins-Microsoft/
[3]
R. D. Team, React: A Javascript Library For Building User Interfaces (2017). URL https://facebook.github.io/react/
[4]
G. C. D. Team, Google Chrome Development Tools (2017) {cited August 2017}. URL https://developers.google.com/web/tools/chrome-devtools/
[5]
B. Burg, A. Kuhn, C. Parnin (Eds.), Proceedings of the 1st International Workshop on Live Programming, LIVE 2013, San Francisco, California, USA, May 19, 2013, IEEE Computer Society, 2013. URL http://ieeexplore.ieee.org/xpl/mostRecentIssue-jsp?punumber=6599030
[6]
S. McDirmid, The Promise of Live Programming, in: Proceedings of the 2nd International Workshop on Live Programming, LIVE '16, Rome, Italy, 2016.
[7]
C. Parnin, A History of Live Programming (01 2013) {cited November 2016}. URL http://liveprogramming.github.io/liveblog/2013/01/a-history-of-live-programming/
[8]
S. L. Tanimoto, A Perspective on the Evolution of Live Programming, in: Proceedings of the 1st International Workshop on Live Programming, LIVE '13, IEEE Press, Piscataway, NJ, USA, 2013, pp. 31--34. URL http://dl.acm.org/citation.cfm?id=2662726.2662735
[9]
P. Rein, S. Lehmann, T. Mattis, R. Hirschfeld, How Live are Live Programming Systems?, Proceedings of the Programming Experience 2016 (PX/16) Workshop on-PX/16doi
[10]
E. Sandewall, Programming in an Interactive Environment: The "Lisp" Experience, ACM Comput. Surv. 10 (1) (1978) 35--71.
[11]
D. Ungar, R. Smith, SELF: the power of simplicity (object-oriented language), Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conferencedoi 1988. 4851.
[12]
D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, A. Kay, Back to the future, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA '97doi 263754.
[13]
D. Ingalls, K. Palacz, S. Uhler, A. Taivalsaari, T. Mikkonen, The Lively Kernel A Self-supporting System on a Web Page, Lecture Notes in Computer Science (2008) 31-50.
[14]
J. Noble, S. McDirmid (Eds.), Proceedings of the 2nd International Workshop on Live Programming, LIVE 2016, Rome, Italy, 2016.
[15]
D. Ogborn, G. Wakefield, C. Baade, K. Sicchio, T. Goncalves (Eds.), Proceedings of the Second International Conference on Live Coding, 2016.
[16]
S. L. Tanimoto, VIVA: A visual language for image processing, Journal of Visual Languages & Computing 1 (2) (1990) 127--139.
[17]
M. M. Burnett, J. W. Atwood, Z. T. Welch, Implementing level 4 liveness in declarative visual programming languages, in: Visual Languages, 1998. Proceedings. 1998 IEEE Symposium on, IEEE, 1998, pp. 126--133.
[18]
E. Wilcox, J. W. Atwood, M. M. Burnett, J. J. Cadiz, C. R. Cook, Does continuous visual feedback aid debugging in direct-manipulation programming systems?, in: Proceedings of the ACM SIGCHI Conference on Human factors in computing systems, ACM, 1997, pp. 258--265.
[19]
S. McDirmid, Living it up with a live programming language, in: ACM SIGPLAN Notices, Vol. 42, ACM, 2007, pp. 623--638.
[20]
J. Edwards, Subtext: uncovering the simplicity of programming, ACM SIGPLAN Notices 40 (10) (2005) 505--518.
[21]
S. McDirmid, J. Edwards, Programming with managed time, in: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, ACM, 2014, pp. 1--10.
[22]
S. Burckhardt, M. Fahndrich, P. de Halleux, S. McDirmid, M. Moskal, N. Tillmann, J. Kato, It's alive! continuous feedback in UI programming, in: ACM SIGPLAN Notices, Vol. 48, ACM, 2013, pp. 95--104.
[23]
R. DeLine, D. Fisher, B. Chandramouli, J. Goldstein, M. Barnett, J. F. Terwilliger, J. Wernsing, Tempe: Live scripting for live data., in: VL/HCC, 2015, pp. 137--141.
[24]
Oracle, Java Platform Debugger Architecture (2014). URL http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/
[25]
S. Hanselman, Interactive Coding with C# and F# REPLS (2016). URL http://bit.ly/InteractiveCodingCF
[26]
K. Uhlenhuth, Introducing the Microsoft Visual Studio C# REPL (Nov 2015). URL https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103
[27]
A. Black, S. Ducasse, O. Nierstrasz, D. Poller., D. Cassou, M. Denker, Pharo by Example, Square Bracket Associates, 2009. URL http://pharobyexample.org
[28]
A. Goldberg, D. Robson, Smalltalk 80: the Language and its Implementation, Addison Wesley, Reading, Mass., 1983. URL http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf
[29]
J. H. Maloney, R. B. Smith, Directness and liveness in the morphic user interface construction environment, in: Proceedings of the 8th annual ACM symposium on User interface and software technology, ACM, 1995, pp. 21--28.
[30]
A. Chiş, O. Nierstrasz, A. Syrel, T. Gîrba, The Moldable Inspector, in: 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), Onward! 2015, ACM, New York, NY, USA, 2015, pp. 44--60. 2814234.
[31]
A. Chiş, T. Gîrba, O. Nierstrasz, The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers, Springer International Publishing, Cham, 2014, pp. 102--121.
[32]
J. H. Maloney, R. B. Smith, Directness and Liveness in the Morphic User Interface Construction Environment, in: Proceedings of the 8th Annual ACM Symposium on User Interface and Software Technology, UIST '95, ACM, New York, NY, USA, 1995, pp. 21--28.
[33]
A. J. Ko, B. A. Myers, M. J. Coblenz, H. H. Aung, An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks, IEEE Transactions on software engineering 32 (12).
[34]
J. Lawrance, C. Bogart, M. Burnett, R. Bellamy, K. Rector, S. D. Fleming, How programmers debug, revisited: An information foraging theory perspective, IEEE Transactions on Software Engineering 39 (2) (2013) 197--215.
[35]
T. D. LaToza, G. Venolia, R. DeLine, Maintaining Mental Models: A Study of Developer Work Habits, in: Proceedings of the 28th International Conference on Software Engineering, ICSE '06, ACM, New York, NY, USA, 2006, pp. 492--501.
[36]
T. Roehm, R. Tiarks, R. Koschke, W. Maalej, How Do Professional Developers Comprehend Software?, in: Proceedings of the 34th International Conference on Software Engineering, ICSE '12, IEEE Press, Piscataway, NJ, USA, 2012, pp. 255--265. URL http://dl.acm.org/citation.cfm?id=2337223.2337254
[37]
T. D. LaToza, D. Garlan, J. D. Herbsleb, B. A. Myers, Program Comprehension As Fact Finding, in: Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ESEC-FSE '07, ACM, New York, NY, USA, 2007, pp. 361--370.
[38]
M. P. Robillard, W. Coelho, G. C. Murphy, How effective developers investigate source code: An exploratory study, IEEE Transactions on software engineering 30 (12) (2004) 889--903.
[39]
J. Sillito, G. Murphy, K. De Voider, Asking and Answering Questions during a Programming Change Task, Software Engineering, IEEE Transactions on 34 (4) (2008) 434--451.
[40]
J. Sillito, Asking and answering questions during a programming change task, Ph.D. thesis, University of British Columbia (Feb 2006). .0052042. URL https://open.library.ubc.ca/cIRcle/collections/831/items/1.0052042
[41]
T. D. LaToza, B. A. Myers, Developers AskReachability Questions, in: Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 1, ICSE '10, ACM, New York, NY, USA, 2010, pp. 185--194.
[42]
A. Ko, R. DeLine, G. Venolia, Information Needs in Collocated Software Development Teams, in: Software Engineering, 2007. ICSE 2007. 29th International Conference on, 2007, pp. 344--353.
[43]
T. Fritz, G. C. Murphy, Using Information Fragments to Answer the Questions Developers Ask, in: Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 1, ICSE '10, ACM, New York, NY, USA, 2010, pp. 175--184.
[44]
E. Duala-Ekoko, M. Robillard, Asking and answering questions about unfamiliar APIs: An exploratory study, in: Software Engineering (ICSE), 2012 34th International Conference on, 2012, pp. 266--276.
[45]
R. DeLine, D. Fisher, Supporting exploratory data analysis with live programming, in: Visual Languages and Human-Centric Computing (VL/HCC), 2015 IEEE Symposium on, IEEE, 2015, pp. 111--119.
[46]
J. Kubelka, R. Robbes, A. Bergel, Dataset for The Road to Live Programming: Insights From the Practice (Feb 2018).
[47]
J. Kubelka, R. Robbes, A. Bergel, Session Video Recordings for The Road to Live Programming: Insights From the Practice (Feb 2018).
[48]
J. Kubelka, R. Robbes, A. Bergel, Tools for The Road to Live Programming: Insights From the Practice (Feb 2018).
[49]
W. Maalej, T. Fritz, R. Robbes, Collecting and processing interaction data for recommendation systems, in: Recommendation Systems in Software Engineering, Springer, 2014, pp. 173--197.
[50]
R. Minelli, M. Lanza, Visualizing the workflow of developers, in: Software Visualization (VISSOFT), 2013 First IEEE Working Conference on, 2013, pp. 1--4.
[51]
U. Flick, An introduction to qualitative research, Sage, 2014.
[52]
F. Zieris, L. Prechelt, Observations on knowledge transfer of professional software developers during pair programming, in: Software Engineering Companion (ICSEC), IEEE/ACM International Conference on, IEEE, 2016, pp. 242--250.
[53]
E. Murphy-Hill, C. Parnin, A. P. Black, How We Refactor, and How We Know It, IEEE Transactions on Software Engineering 38 (1) (2012) 5--18.
[54]
S. Hanenberg, S. Kleinschmager, R. Robbes, É. Tanter, A. Stefik, An empirical study on the impact of static typing on software maintainability, Empirical Software Engineering 19 (5) (2014) 1335--1382.
[55]
S. Endrikat, S. Hanenberg, R. Robbes, A. Stefik, How do api documentation and static typing affect api usability?, in: Proceedings of the 36th International Conference on Software Engineering, ACM, 2014, pp. 632--642.
[56]
P. Petersen, S. Hanenberg, R. Robbes, An empirical comparison of static and dynamic type systems on api usage in the presence of an ide: Java vs. groovy with eclipse, in: Proceedings of the 22nd International Conference on Program Comprehension, ACM, 2014, pp. 212--222.
[57]
C. Sadowski, K. T. Stolee, S. Elbaum, How developers search for code: a case study, in: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ACM, 2015, pp. 191--201.
[58]
A. J. Ko, H. H. Aung, B. A. Myers, M. J. Coblenz, An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks, Software Engineering, IEEE Transactions on 32 (12) (2006) 971--987.
[59]
A. J. Ko, B. A. Myers, Finding causes of program output with the Java Whyline, in: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM, 2009, pp. 1569--1578.
[60]
L. Ponzanelli, G. Bavota, M. Di Penta, R. Oliveto, M. Lanza, Prompter, Empirical Software Engineering 21 (5) (2016) 2190--2231.
[61]
S. Subramanian, L. Inozemtseva, R. Holmes, Live API Documentation, in: Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, ACM, New York, NY, USA, 2014, pp. 643--652.
[62]
J. Siegmund, N. Siegmund, S. Apel, Views on internal and external validity in empirical software engineering, in: Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on, Vol. 1, IEEE, 2015, pp. 9--19.
[63]
M. Ragan-Kelley, F. Perez, B. Granger, T. Kluyver, P. Ivanov, J. Frederic, M. Busson-nier, The Jupyter/IPython architecture: a unified view of computational research, from interactive exploration to communication and publication., in: AGU Fall Meeting Abstracts, 2014.
[64]
L. Beckwith, M. Burnett, S. Wiedenbeck, C. Cook, S. Sorte, M. Hastings, Effectiveness of end-user debugging software features: Are there gender issues?, in: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM, 2005, pp. 869--878.
[65]
L. Beckwith, C. Kissinger, M. Burnett, S. Wiedenbeck, J. Lawrance, A. Blackwell, C. Cook, Tinkering and gender in end-user programmers' debugging, in: Proceedings of the SIGCHI conference on Human Factors in computing systems, ACM, 2006, pp. 231--240.
[66]
R. DeLine, A. Bragdon, K. Rowan, J. Jacobsen, S. P. Reiss, Debugger Canvas: Industrial experience with the code bubbles paradigm, in: M. Glinz, G. C. Murphy, M. Pezzè (Eds.), ICSE, IEEE, 2012, pp. 1064--1073.

Cited By

View all
  • (2024)Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory ProgrammingProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690049(68-84)Online publication date: 17-Oct-2024
  • (2024)Age-Inclusive Integrated Development Environments for End-Users2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00039(289-299)Online publication date: 2-Sep-2024
  • (2024)Debugging Activity Blueprint2024 IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT64034.2024.00015(48-58)Online publication date: 6-Oct-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '18: Proceedings of the 40th International Conference on Software Engineering
May 2018
1307 pages
ISBN:9781450356381
DOI:10.1145/3180155
  • Conference Chair:
  • Michel Chaudron,
  • General Chair:
  • Ivica Crnkovic,
  • Program Chairs:
  • Marsha Chechik,
  • Mark Harman
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: 27 May 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. exploratory study
  2. live programming
  3. software evolution

Qualifiers

  • Research-article

Funding Sources

  • Conicyt

Conference

ICSE '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)36
  • Downloads (Last 6 weeks)4
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory ProgrammingProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690049(68-84)Online publication date: 17-Oct-2024
  • (2024)Age-Inclusive Integrated Development Environments for End-Users2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00039(289-299)Online publication date: 2-Sep-2024
  • (2024)Debugging Activity Blueprint2024 IEEE Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT64034.2024.00015(48-58)Online publication date: 6-Oct-2024
  • (2024)Asking and Answering Questions During Memory ProfilingIEEE Transactions on Software Engineering10.1109/TSE.2024.337712750:5(1096-1117)Online publication date: May-2024
  • (2024)Operation-based versioning as a foundation for live executable modelsSoftware and Systems Modeling10.1007/s10270-024-01212-xOnline publication date: 15-Oct-2024
  • (2023)Collaborative Live Modelling by Language-Agnostic Versioning2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C59198.2023.00067(364-374)Online publication date: 1-Oct-2023
  • (2023)Live Programming for Finite Model FindersProceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE56229.2023.00016(1747-1752)Online publication date: 11-Nov-2023
  • (2022)The Gamma: Programmatic Data Exploration for Non-programmers2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC53370.2022.9833134(1-7)Online publication date: 12-Sep-2022
  • (2021)PATSQLProceedings of the VLDB Endowment10.14778/3476249.347625314:11(1937-1949)Online publication date: 1-Jul-2021
  • (2021)Weaving Schematics and Code: Interactive Visual Editing for Hardware Description LanguagesThe 34th Annual ACM Symposium on User Interface Software and Technology10.1145/3472749.3474804(1039-1049)Online publication date: 10-Oct-2021
  • 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