This reminded me of a talk by Alan Kay where he takes one 'app' - an animation - and connects it to another app - a picture editor. By exposing the methods of the animation and live binding it to the editor, he is able to construct an ensemble where one frame of the animation can be live edited in the picture editor, while the animation is playing. The main point was that these 'apps' were not designed with each other in mind, yet were able to work together. These were not apps, really - they were just objects with views. For them to work together, they were both introspectable (could see their methods), built from the same substrate (same smalltalk system) and shared the notion of some types (e.g. a picture itself).