Feedback on Átila's Vision for D
Rumbu
rumbu at rumbu.ro
Thu Oct 17 16:50:15 UTC 2019
On Thursday, 17 October 2019 at 16:26:07 UTC, Atila Neves wrote:
> On Thursday, 17 October 2019 at 15:24:09 UTC, Rumbu wrote:
>> On Thursday, 17 October 2019 at 12:51:17 UTC, Atila Neves
>> wrote:
>>> On Wednesday, 16 October 2019 at 18:34:01 UTC, Rumbu wrote:
>>> What is it about OOP in D that you find lacking?
>>>
>>
>> The general attitude "OOP is bad, let's use a struct instead".
>
> I don't know what to do about this. I prefer structs myself.
Wonderful. Then why ask in the first place?
>
>> The fact that objects are by default allocated using gc.
>
> Only if you use `new`. And if you don't, then you'll have to
> worry about memory management.
Thank you for stating the obvious.
>> There is no language construct to use RAII or heap application
>> on objects. We had scope but it was deprecated.
>
> That would be news to me. Even if `scope obj = new MyClass;`
> got deprecated, there are library solutions.
Library solution is not a *language construct*. You know what?
Let's deprecate 'struct'. I bet that we can build a library
solution instead. Too many keywords, 'switch' can be reduced to a
library solution using just 'if's.
>
>> The fact that class encapsulation is not fully implemented.
>> Private is not so private.
>
> This is by design and isn't going to be changed. Classes can be
> in their own module if needed.
>
>> Structs cannot implement interfaces (see next point for usage).
>
> Also by design, unless you want something like Rust's traits or
> Haskell's typeclasses. But none of this is OOP.
Being by design, doesn't mean it's correct.
I'm starting to understand Chris.
More information about the Digitalmars-d
mailing list