Sealed classes - would you want them in D? (v2)

KingJoffrey KingJoffrey at KingJoffrey.com
Thu May 17 12:26:53 UTC 2018


On Thursday, 17 May 2018 at 11:56:51 UTC, Piotr Mitana wrote:
>
> My opinion is that it's not worth a new keyword and time for 
> implementing. In the same manner you could ask for removing 
> friend concept from C++ as a bad concept. I don't answer the 
> question whether this concept is good or bad - just give an 
> example. The difference is that you can just go without friend 
> at all, and module-level private is forced.

Try telling Bjarne Stroustrup that ;-)

I still believe (like Bjarne) that friend in c++ is the right 
way, for those of us that believe that the defined interface is 
how you obtain your interface. Friend is a part of the defined 
interface.

Within implict friends, the interface is pretty blurry - but 
that's another story, and as I said, my change would not affect 
those who thing facebook like friendship in modules is a good 
approach - I think we can have it both ways really.

Although I don't suggest adding friend to D, I do like option of 
having static enforcement of the defined interface, as a 
possibilty the programmer can opt-in to.

At the moment, that can only be done by the one-class-per-module 
hack.

Which means, for OOP programmers, the module in D(i.e. the file), 
becomes nothing more than a pseudo class. This will make some 
(perhaps many) OOP programmers wonder why they should bother 
coming to D at all. It certainly is a question I keep asking 
myself, over and over - at some point I make a conclusion.

The capacity to have more than one class in a module, and be able 
to obtain static enforcement of the use of the defined interface 
(by restoring private to its rightful status - as an option - 
perhaps by the using the sealed attribute on a class), can only 
have a positive effect, in my view. I cannot see how it would 
negatively affect anyone. It's purely opt-in, not opt-out.

And yes, it's a small change, but has potential for great impact 
(presumably, only positive impact) - although that's why I want 
to have this discussion - to see how others think too.



More information about the Digitalmars-d mailing list