Chapter 11. Separating Concerns with First-Class NamespacesOSCAR NIERSTRASZ AND FRANZ ACHERMANN As applications evolve, it becomes harder and harder to separate independent concerns. Small changes to a software system increasingly affect different parts of the source code. AOP and related approaches offer various ways to separate concerns into concrete software artifacts, but what is the essence of this process? We claim that first-class namespaceswhich we refer to as formsoffer a suitable foundation for separating concerns by offering simple yet expressive mechanisms for defining composable abstractions. We demonstrate how forms help a programmer to separate concerns by means of practical examples in Piccola, an experimental composition language. |