On Tuesday, 14 February 2023 at 15:34:17 UTC, bachmeier wrote:
On Tuesday, 14 February 2023 at 10:16:47 UTC, ProtectAndHide wrote:

In any case, there is nothing 'picky' about wanting to be able to explicately 'declare' a member of my class type as being private. That to me, is what a programmer should expect to be able to do in a language that says it supports OOP.

What you are saying is that you want an implementation of a particular language that calls itself an OOP language. [There is a lot of controversy about the definition of OOP](https://wiki.c2.com/?NobodyAgreesOnWhatOoIs). I do not think the explicit ability to declare a member of a class private in a particular way has anything to do with it. You are certainly entitled to your opinion, but it doesn't help to say D is not an OOP language because you don't like some of the design decisions.

It's true that not everybody understands what OOP is.

But I think everyone would agree, that data hiding is at the core.

First, I'm not advocating for OOP, or against it.

It's just a tool that's suitable in some scenarios, and not it others.

I'm also not a OOP purist.

Now with that out of the way....

D claims to support OOP. Put that to the test. Because there is a difference between programming with modules ('Decide which modules you want and partition the program so that data is hidden in modules.') and programming with 'user-defined types' ('Decide which types you want and provide a full set of operations for each type').

Data hiding is at the core of using modules.

It's also at the core of using types.

I refer interested people to:

"Most, but not all, modules are better expressed as user defined types." -

What is 'Object-Oriented Programming'? (1991 revised version) Bjarne Stroustrup

https://www.stroustrup.com/whatis.pdf


Reply via email to