Sealed classes - would you want them in D? (v2)
KingJoffrey
KingJoffrey at KingJoffrey.com
Thu May 17 11:18:52 UTC 2018
On Thursday, 17 May 2018 at 10:34:18 UTC, Zoadian wrote:
> On Thursday, 17 May 2018 at 02:32:07 UTC, KingJoffrey wrote:
>> I propose an idea, for discussion (robust discussion even
>> better ;-)
>>
>> Add an new attribute to class, named 'sealed'.
>
> If class level protection is added, please do not call it
> sealed.
> People from c++ might be suprised by 'private' already. We do
> not have to confuse those c#ies too.
Interesting.
If only D had applied that same criteria to use of the word
'private'.
I do wonder what word could possibly suffice, to please everyone.
> Module level protection is enough to hide implementation
> details though. So while i do understand why you want this in
> D, i don't think it is worth it to complicate the language for
> something you can work around easily by putting the classes in
> their own modules.
Here, I think you are falling into the trap, of believing, that
the concept of
modularity can only ever apply the way D currently applies it -
at the file level.
In OOP programming, the class is the module. (yes, I know how
much D programmers love OOP ;-)
When OOP programmers come to D however, they are 'forced' into
the D concept of modularity, and cannot model modularity in
accordance with their own problem domain - but have no choice to
use one class per file - just to regain what they already have in
other mainstream languages. But then, for those OOP programmer,
the 'file' has little value, cause it now can only ever represent
a single class.
Remember, that the idea here is not to force anyone to change how
they currently think or do things. It simply extends the way in
which a 'file' module can be used.
> I'm also not convinced think that your 'sealed' would be used
> much, because accessing private state in the module is actually
> extremly useful (e.g. unittests).
>
Again, what people can do, they will still be able to do. Nothing
changes for them.
btw. D has less than 1000 programmers. How many OOP programmers
in the world?
Build it, and they will come...perhaps.
> That beeing said, if you are convinced it would be a good
> addition, please write a DIP.
DIP before discussion, is not the way I do things.
> Even if it will not be accepted it will at least force a
> decision. And we can point to the reasons it got
> accepted/rejected in the future.
Again, DIP before discussion, and we all know what will happed to
the DIP.
More information about the Digitalmars-d
mailing list