Keynote: ContextJS and Lively Kernel: Safely Evolving a Self-supporting Development Environment with COP
Computational reflection and meta-circularity, developing in self-supporting environments like Smalltalk inherently has the danger of breaking one’s own tools, which is more severe in a shared environment like Lively Kernel since changes can and often do affect more than a single user. Therefore, developers should have the means to change their system at run-time, to try out changes, and share new features or tool adaptations with others in a controlled way.
To address this, we use Context-oriented Programming (COP) to modularize changes to the base system. COP layers can be scoped, depending on the execution context, to make the development of the base system safer at run-time by reducing the risk of tools breaking themselves. Furthermore, layers can be used to share such changes in a wiki-like collaboration setting.
We implemented our approach in Lively Webwerkstatt, a collaborative, self-supporting development environment based on Lively Kernel. Development layers are implemented using ContextJS our context-oriented JavaScript language extension, which supports domain-specific scoping strategies, that allow restraining behavioral adaptations not only to the dynamic extent of an execution, but also structurally to object composition hierarchies.
Webwerkstatt has been actively used for more than four years now—not only by a small group of core developers, but also by external users, including our students, for whom it has served as a shared development environment. During this time, its users successfully worked on their projects, adapted tools, and also helped to evolve Lively Webwerkstatt itself.
Sun 5 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
09:30 - 10:30 | |||
09:30 60mTalk | Keynote: ContextJS and Lively Kernel: Safely Evolving a Self-supporting Development Environment with COP COP Jens Lincke Hasso Plattner Institute |