Beyond Modularization and OOP: Composable Software

Prof. Jurg Gutknecht (Dept. of Computer Science, ETH-Zurich, Switzerland)

Citing Brad Cox, the current state of software manufacturing is "like musket making was before Eli Whitney". This metaphor vividly puts the current premagture state of handcrafted software construction in contrast with a more advanced culture that is governed by components fabrication and reuse. Undoubtedly the most promising approach to a component culture is the object-oriented programming pradigm. Object-oriented languages typically support the construction of class libraries and thereby serve the double purpose of a compositonal framework for object classes and a production plant for object instances. However, in a component culture, at least two additional facilities rarely provided by bare programming languages are needed: (a) Persistent representation of individual objects outside of the runtime environment and (b) object composition. We shall discuss these isssues and present a solution that we have implemented under the name of Oberon System 3 and Gadgets.