Combining Inheritance and Modularity
Inheritance and Modularity are at once contradictory and complementary. Inheritance unifies self reference across distinct modules, so that changes to one can potentially break the other. And yet, inheritance helps split code into reusable units, which feel suspiciously like modules. In fact, the unification of self reference continues to provide a powerful modularity mechanism that can be systematized as a set of module combinators.
In a networked world, the counter-modular properties of inheritance become less of a problem. Perhaps the time has come to revive the notion of inheritance-based module combinators.
Gilad Bracha is the creator of the Newspeak programming language and a software engineer at Google where he works on Dart. Previously, he was a VP at SAP Labs, a Distinguished Engineer at Cadence, and a Computational Theologist and Distinguished Engineer at Sun. He is co-author of the Java Language Specification, and a researcher in the area of object-oriented programming languages. Prior to joining Sun, he worked on Strongtalk, the Animorphic Smalltalk System. He received his B.Sc in Mathematics and Computer Science from Ben Gurion University in Israel and a Ph.D. in Computer Science from the University of Utah.