Paul,
I like your network idea, especially because of the facility to simply connect to other networks and communicate with them.
- Regarding specs: Do you know the GUI-Builder UIPainter from VisualWorks?
- Naming:
I would choose more different names for ConnectionMorph and ConnectableMorph, because their functionality strongly differs. Perhaps it would be better to make a difference between 'Morph' graphical objects connected by 'Connection's: This would suggest 'Morph' and 'Connection' as abstract superclasses.
- Embedding:
Embedding *could* be realized by EmbeddingConnection as subclass of Connection. EmbeddingConnections correspond to a *directed* connection between two morphs, normal connections could be seen as un- or bidirected.
This *could* simplify things, but I'm not sure if this is better as using inst var embedding.
Performance issues have to be taken into account, too: they could be a KO criterium. But this has to be proved first...
- Network namespaces:
Network namespace problems could be solved by a NamespaceSeparatorConnection, which changes network message selectors in some kind (e.g. by adding post- or prefixes), or just stops further sending of them.
Just a little bit brainstorming...
Stephan