skip to main content
10.1145/2047196.2047215acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article

Real-time collaborative coding in a web IDE

Authors Info & Claims
Published:16 October 2011Publication History

ABSTRACT

This paper describes Collabode, a web-based Java integrated development environment designed to support close, synchronous collaboration between programmers. We examine the problem of collaborative coding in the face of program compilation errors introduced by other users which make collaboration more difficult, and describe an algorithm for error-mediated integration of program code. Concurrent editors see the text of changes made by collaborators, but the errors reported in their view are based only on their own changes. Editors may run the program at any time, using only error-free edits supplied so far, and ignoring incomplete or otherwise error-generating changes. We evaluate this algorithm and interface on recorded data from previous pilot experiments with Collabode, and via a user study with student and professional programmers. We conclude that it offers appreciable benefits over naive continuous synchronization without regard to errors and over manual version control.

References

  1. M. Bayne, R. Cook, and M. D. Ernst. Always-available static and dynamic feedback. In ICSE, page 521, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Beck. Test-Driven Development: By Example. Addison-Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Bo, B. Jiajun, C. Chun, and W. Bo. Semantic consistency maintenance in collaborative graphics design systems. In Proc. Computer Supported Cooperative Work in Design, pages 35--40. IEEE, Apr. 2008.Google ScholarGoogle Scholar
  5. L.-T. Cheng, S. Hupfer, S. Ross, and J. Patterson. Jazzing up Eclipse with collaborative tools. In OOPSLA workshop on eclipse technology eXchange, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Cockburn. Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Dewan, P. Agarwal, G. Shroff, and R. Hegde. Distributed side-by-side programming. In CHASE, page 7, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Dewan and J. Riedl. Toward Computer-Supported Concurrent Software Engineering. IEEE Computer, 26:17--27, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Goldman, G. Little, and R. C. Miller. Collabode: Collaborative Coding in the Browser. In CHASE, page 65, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Goldman and R. C. Miller. Test-Driven Roles for Pair Programmming. In CHASE, pages 515--516, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Hattori and M. Lanza. Syde: a tool for collaborative software development. In ICSE, pages 235--238, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. Hegde and P. Dewan. Connecting Programming Environments to Support Ad-Hoc Collaboration. In ASE, pages 178--187. IEEE, Sept. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. C.-W. Ho, S. Raha, E. Gehringer, and L. Williams. Sangam: a distributed pair programming plug-in for Eclipse. In OOPSLA workshop on Eclipse Technology eXchange, page 73, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Holmes and R. J. Walker. Customized awareness: recommending relevant external change events. In ICSE, pages 465--474, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C.-L. Ignat and M. C. Norrie. Handling Conflicts through Multi-level Editing in Peer-to-peer Environments. In Proc. CSCW Workshop on Collaborative Editing Systems, 2006.Google ScholarGoogle Scholar
  16. A. J. Ko, H. H. Aung, and B. A. Myers. Design requirements for more flexible structured editors from a study of programmers' text editing. In CHI Extended Abstracts, CHI EA '05, page 1557, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Minor. Interacting with structure-oriented editors. International Journal of Man-Machine Studies, 37(4):399--418, Oct. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. X. Ren, F. Shah, F. Tip, B. G. Ryder, and O. Chesley. Chianti: a tool for change impact analysis of java programs. In Proc. OOPSLA, volume 39, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B. G. Ryder and F. Tip. Change impact analysis for object-oriented programs. In Workshop on Program Analysis for Software Tools and Engineering, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Saff and M. D. Ernst. Reducing wasted development time via continuous testing. In International Symposium on Software Reliability Engineering, pages 281--292. IEEE, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Salinger, C. Oezbek, K. Beecher, and J. Schenk. Saros: an Eclipse plug-in for distributed party programming. In CHASE, pages 48--55, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Sarma, Z. Noroozi, and A. van Der Hoek. Palantír: raising awareness among configuration management workspaces. In ICSE, pages 444--454, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. F. Servant, J. A. Jones, and A. V. D. Hoek. CASI: preventing indirect conflicts through a live visualization. In CHASE, pages 39--46, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Shao, S. Khurshid, and D. E. Perry. Evaluation of Semantic Interference Detection in Parallel Changes: an Exploratory Experiment. In International Conference on Software Maintenance, pages 74--83. IEEE, Oct. 2007.Google ScholarGoogle ScholarCross RefCross Ref
  25. C. Sun and C. Ellis. Operational transformation in real-time group editors. In Proc. Computer Supported Cooperative Work, pages 59--68, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. Treude and M.-A. Storey. Awareness 2.0: staying aware of projects, developers and tasks using dashboards and feeds. In ICSE, pages 365--374, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. van Deursen, A. Mesbah, B. Cornelissen, A. Zaidman, M. Pinzger, and A. Guzzi. Adinda: a knowledgeable, browser-based IDE. In ICSE, pages 203--206, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. C. Waters. Program editors should not abandon text oriented commands. ACM SIGPLAN Notices, 17(7):39, July 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. J. Wloka, B. Ryder, F. Tip, and X. Ren. Safe-commit analysis to facilitate team software development. In International Conference on Software Engineering, pages 507--517, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J. Wloka, B. G. Ryder, and F. Tip. JUnitMX - A change-aware unit testing tool. In International Conference on Software Engineering, pages 567--570, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Real-time collaborative coding in a web IDE

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

      cover image ACM Conferences
      UIST '11: Proceedings of the 24th annual ACM symposium on User interface software and technology
      October 2011
      654 pages
      ISBN:9781450307161
      DOI:10.1145/2047196

      Copyright © 2011 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 16 October 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      UIST '11 Paper Acceptance Rate67of262submissions,26%Overall Acceptance Rate842of3,967submissions,21%

      Upcoming Conference

      UIST '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader