visualizing software designs and understanding large-scale distributed systems
It seems that Gosling is referring to small (method-level) to medium (object or package-level) scale visualization. I love the idea of automatically generating a state-transition diagram from source code. This make me think of Bill V's book-in-progress (http://www.artima.com/objectdesign/object5.html
I'm not so sure about putting in diagram information (e.g. x, y locations) into java sources, however. Sounds kind of yucky.
I wonder if the things he's working on will work with larger scale intra-package kinds of things. The Pasta tool (http://javacentral.compuware.com/pasta/
) is the only one I've seen. There are probably others, but I'm not one that often gets a look at expensive tools.
Gosling has some interesting insights regarding the dependencies in large loosely coupled systems. He basically mentions keeping track of coverage (maintaining a log of who has ever talked to you
). This is important where the recipient (server) of requests wants to be kind to the senders (clients).
But on the web, the maintainers of servers rarely take time to look up who links to them before moving or deleting content. This is what makes it a difficult problem -- when people would be required to do a lot of tedious work, it will either get done poorly or not at all.