Revisiting the Cake Pattern: Scaling “Scalable Component Abstractions”
The cake pattern was designed to support modular development combining mixins with ML modules, but it is criticized because mixins are not sufficiently isolated from each other’s implementation. Indeed, as discussed by Gabriel, historically mixins were not designed to enforce isolation, but to support separating intrinsically orthogonal concepts in cooperative development scenarios.
We start investigating the issue and clarify which scenarios the cake pattern does succesfully apply to. We compare the cake pattern with an encoding of (recursive) hierarchical modules based on object composition instead of inheritance, that support fully separate modular development at the cost of more boilerplate.
We also suggest one could support separate modular development without additional boilerplate by combining the cake pattern with private implementation inheritance.
Sun 30 OctDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:40 - 17:20 | |||
15:40 25mTalk | Revisiting the Cake Pattern: Scaling “Scalable Component Abstractions” Scala Paolo G. Giarrusso University of Tübingen, Germany, Jonathan Immanuel Brachthäuser University of Tübingen, Germany | ||
16:05 25mTalk | A Scalable Infrastructure for Teaching Concepts of Programming Languages in Scala with WebLab: An Experience Report Scala Tim van der Lippe Delft University of Technology, Netherlands, Thomas Smith Delft University of Technology, Netherlands, Daniel A. A. Pelsmaeker Delft University of Technology, Netherlands, Eelco Visser Delft University of Technology, Netherlands DOI File Attached | ||
16:30 50mOther | Unconference 1 Scala |