On Tuesday, 13 March 2018 at 02:24:38 UTC, Mike Parker wrote:
On Tuesday, 13 March 2018 at 02:06:57 UTC, psychoticRabbit
wrote:
Mmm.. I don't think I like it.
I feel you should be able to make a member of a class,
private, regardless of where the class is located. This seems
to break the concept of class encapsulation.
No. I don't like it at all.
If you have access to the module source, you have access to the
source of types inside it. Making the module the lowest level
of encapsulation makes sense from that perspective.
There are two problems I see:
1st - D has broken the concept of class encapsulation, simply for
convenience at the module level. Not good in my opinion.
2nd - C++/C#/Java programmers will come to D, use the same
syntax, but get very different semantics. Not good in my opinion.
(i.e. I only realised private was not private, by accident).
D has made many good design decisions. I do not see this as one
of them.