`restricted` member variables

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Wed Jun 22 13:06:04 UTC 2022


On Wednesday, 22 June 2022 at 11:36:52 UTC, forkit wrote:
> Of course, this butchering does have an effect on OOP in D. But 
> that's not the main point here.
>
> In fact, you are always using abstract data types, and 
> benefitting from them, regardless of what 'paradigm' you're 
> using.

Yes, yes, yes, but many D programmers don't have formal training 
so they are going by what they read on blogs or their own 
experience.

It should be obvious to anyone that if D's strength is to go from 
prototyping to shippable products then solid support for 
evolution is needed. Fine grained encapsulation is absolutely an 
advantage. That's 100% undeniable. Especially in system level 
programming.

However, if I were to rank what should be focused on, then 
changing/adding to encapsulation would be at spot 20 or so…

Currently the big issue for D is *not loosing focus* and complete 
what has been started on:

1. competitive memory management
2. @safe and @trusted
3. completing existing features
4. fixing error handling
5. fixing contracts

When all that is done… by all means, look at encapsulation, 
syntax, etc.

But I would predict that the end result, after everyone has 
added/changed their pet peeve, would be something that would not 
be D2, it would be D3.

So the best option is to either make do with naming-conventions 
to get ad-hoc class-privacy or implement it as a fork.

If you want to do this in a fork then I'll try to help you with 
locating the spots that need modification. If you complete this 
on a fork, I'll help you write the DIP for it.




More information about the Digitalmars-d mailing list