Abstract :
Code reuse and distributed systems seem to have little in common, except for the obvious similarity that both are just about to become dominant forms of software. Further, both have been about to become the dominant form of software for as long as most of us can remember. The great success of these technologies seems always to be tantalizingly in the future. The author begins by arguing that there are a number of similar reasons for the inability of either of these technologies to fulfil their promise. Some of these are technical, some are sociological, and some have to do with the wrong set of expectations surrounding the promise. The one thing that most of the problems have in common is that no proposed solution for either code reuse or distributed computing actually addresses the problems in any serious way. The author then argues that, nearly by accident, we have stumbled across some potential solutions. While we thought we were figuring out how to use the World Wide Web, we in fact found some approaches that might allow a combination of distributed computing (understood in perhaps a new and extended way) and language-centric design to allow us to reuse code in ways that will help in the construction of large and robust systems. While there are still problems concerning the sociology (and psychology) of programming that stand in the way of general code reuse, we might be getting a little closer to having a chance of fulfilling some of the promises we have been making for the past 10 years