> But I know that I don't have any problem with modularity in other languages.

You want module extension. In fact, you have a module **A** with type X and a 
module **B** with a type Y and then you extend **A** with **B** that can be 
read as **A[B]** so you "plugged in" the B into the A. Now you can have access 
to both A[B].X and A[B].Y with the same object. You can find the feature 
everywhere, especially in languages that inherit from Java. This is a 
convenient feature and typically some runtime (virtual tables) is involved. The 
programmer is satisfied because of the convenience and thinks that it is 
"modular". However, If you want to do it efficiently, you have to recompile 
both A und B if you change one of them. So there is not much modularity here.

But I think about **separate compilation**. We can automatize this (see post 
above) or we can do it with module descriptions like C++'s upcoming module 
feature. (They are a bit late....).

So our focus is a bit different. 

Reply via email to