News for hackers. Stuff that matters.
Re:Correctness – A paradigm for sustainable software develop... by naasking on Saturday April 06, 2019 @06:35PM (#19593432)
Why is that arbitrary? Encapsulation is a core principle of OOP.

Re: there being no problem, that depends. Pure OOP has advantages and violating the properties often sacrifice some of those advantages.

Re:Correctness – A paradigm for sustainable software develop... by int_19h on Monday April 08, 2019 @04:53PM (#19608912)
> Encapsulation is a core principle of OOP.

That's exactly the assertion that I'd like substantiated. I don't think there's consensus on this. Sure, it's mentioned in the oft-cited "encapsulation, inheritance, polymorphism, abstraction" mantra - but so is inheritance, and yet prototype-based OO doesn't have it.

Personally, I would say that the only core principles of OOP are object identity (i.e. objects are distinguishable aside from their state), and polymorphism via dynamic dispatch. Everything else is optional.

Re:Correctness – A paradigm for sustainable software develop... by naasking on Tuesday April 09, 2019 @08:52AM (#19614060)
There's a historical argument: encapsulation was in Cardelli's original object calculi, and part of every OO language of the time.

There's also a conceptual argument: dynamic dispatch and object identity both require encapsulation. What do you think you're dispatching or comparing equality on if not hidden state?