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

Lively groups: shared behavior in a world of objects without classes or prototypes

Published:26 October 2015Publication History

ABSTRACT

Development environments which aim to provide short feedback loops to developers must strike a balance between immediacy and the ability to abstract and reuse behavioral modules. The Lively Kernel, a self-supporting, browser-based environment for explorative development supports standard object-oriented programming with classes or prototypes, but also a more immediate, object-centric approach for modifying and programming visible objects directly. This allows users to quickly create graphical prototypes with concrete objects. However, when developing with the object-centric approach, sharing behavior between similar objects becomes cumbersome. Developers must choose to either abstract behavior into classes, scatter code across collaborating objects, or to manually copy code between multiple objects. That is, they must choose between less concrete development, reduced maintainability, or code duplication. In this paper, we propose Lively Groups, an extension to the object-centric development tools of Lively to work on multiple concrete objects. In our approach, developers may dynamically group live objects that share behavior using tags. They can then modify and program such groups as if they were single objects. Our approach scales the Lively Kernel’s explorative development approach from one to many objects, while preserving the maintainability of abstractions and the immediacy of concrete objects.

Skip Supplemental Material Section

Supplemental Material

p15-felgentreff-s.mp4

mp4

69.3 MB

References

  1. L. Cardelli. A semantics of multiple inheritance. Semantics of data types, pages 51–67, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Chiba, M. Horie, K. Kanazawa, F. Takeyama, and Y. Teramoto. Do We Really Need to Extend Syntax for Advanced Modularity? In Proceedings of the 11th Annual International Conference on Aspect-oriented Software Development, AOSD ’12, pages 95–106. ACM, March 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Curry, L. Baer, D. Lipkie, and B. Lee. Traits: An Approach to Multiple-inheritance Subclassing. In Proceedings of the SIGOA Conference on O ffice Information Systems, pages 1–9. ACM, June 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. R. Green, A. Borning, T. O’Shea, M. Minoughan, and R. Smith. The stripetalk papers: Understandability as a language design issue in object-oriented programming systems. Prototype-based Programming: Concepts, Languages and Applications, 1998.Google ScholarGoogle Scholar
  5. R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-oriented programming. Journal of Object Technology, 7(3):125–151, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  6. D. Ingalls. The Lively Kernel: Just for Fun, Let’s Take JavaScript Seriously. In Proceedings of the 2008 Symposium on Dynamic Languages, DLS ’08, pages 9:1–9:1. ACM, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself. In Proceedings of the 12th ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages and Applications, OOPSLA ’97, pages 318–326. ACM, October 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Ingalls, K. Palacz, S. Uhler, A. Taivalsaari, and T. Mikkonen. The Lively Kernel–A Self-supporting System on a Web Page. In R. Hirschfeld and K. Rose, editors, Self-Sustaining Systems, pages 31–50. Springer, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Kay. Squeak Etoys, Children & Learning. Technical report, Viewpoints Research Institute, Jan. 2005.Google ScholarGoogle Scholar
  10. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming, ECOOP ’97, page 220–242. ACM, December 1997.Google ScholarGoogle Scholar
  11. B. Lague, D. Proulx, J. Mayrand, E. Merlo, and J. Hudepohl. Assessing the benefits of incorporating function clone detection in a development process. In Software Maintenance, 1997. Proceedings., International Conference on, pages 314–321. IEEE, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Lincke and R. Hirschfeld. Scoping Changes in Self-supporting Development Environments Using Contextoriented Programming. In Proceedings of the International Workshop on Context-Oriented Programming, COP ’12, pages 2:1–2:6. ACM, June 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Lincke, M. Appeltauer, B. Steinert, and R. Hirschfeld. An Open Implementation for Context-oriented Layer Composition in ContextJS. Science of Computer Programming, 76(12): 1194–1209, December 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Lincke, R. Krahn, D. Ingalls, M. Roder, and R. Hirschfeld. The Lively PartsBin–A Cloud-Based Repository for Collaborative Development of Active Web Content. In Proceedings of the 2012 45th Hawaii International Conference on System Sciences, HICSS ’12, pages 693–701. IEEE, January 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. H. Maloney and 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, pages 21–28. ACM, December 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Meyer. Object-oriented Software Construction. Prentice-Hall, second edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Micallef. Encapsulation, reusability and extensibility in object-oriented programming languages. Journal of Object-Oriented Programming, 1(1):12–36, 1988.Google ScholarGoogle Scholar
  18. G. L. Steele Jr. An overview of common lisp. In Proceedings of the 1982 ACM symposium on LISP and functional programming, pages 98–107. ACM, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton Jr. N degrees of separation: multi-dimensional separation of concerns. In Proceedings of the 21st international conference on Software engineering, pages 107–119. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Ungar and R. B. Smith. Self: The Power of Simplicity. In Conference Proceedings on Object-oriented Programming Systems, Languages and Applications, OOPSLA ’87, pages 227–242. ACM, December 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Ungar and R. B. Smith. Self. In Proceedings of the third ACM SIGPLAN Conference on History of Programming Languages, HOPL III, pages 9–1–9–50. ACM, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Ungar, C. Chambers, B.-W. Chang, and U. Hölzle. Organizing Programs Without Classes. Lisp Symbolic Computing, 4(3):223–242, July 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lively groups: shared behavior in a world of objects without classes or prototypes

    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

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader