Hello Pedro,
Martin Sandin
1

Hi Martin,

Thanks for your reply. I don’t quite see it though. It seems to me that you can still write your code as usual, defining dependencies, inheritance, etc, and never have to commit to one particular structure, other than the one implicitly defined by these relations between classes. If you then want to know which classes seem to call each other more and maybe even form an independent module, you would just have to analyze clusters within the implicitly defined graph. If you’d like to get a kind-wise view, then it would just be a matter of analyzing the graph and grouping according to kind. The same goes for everything else.

Ideally, you wouldn’t even have access modifiers. You’d have to specify each and every dependency (which is not a big deal, since it can be done/suggested automatically by the IDE). If you started getting spaghetti code, it would become obvious in a visual graph analysis tool/view in the IDE.

My point is that it seems utterly inelegant having access modifiers, then packages, then projects, then modules, then module suites (taking the example of Netbeans), as if these were all different things, when in reality they’re all doing the same thing at different levels, which is essentially defining access.

Best,

Pedro