<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br><br>Sent from my iPad</div><div><br>On Dec 22, 2015, at 3:43 AM, Tino Heth <<a href="mailto:2th@gmx.de">2th@gmx.de</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div><br class=""><blockquote type="cite" class=""><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">I can see why you view it this way, but access control and inheritability are orthogonal.</span></div></blockquote></div>as I understand orthogonal (mathematical background), it is definitely not the case:<div class="">I can't inherit what I cannot access, so there is one impossible combination of the two attributes.</div></div></blockquote><div><br></div>Ok, you got me there. Orthogonal was not the best choice of words. Nevertheless, they are independent concerns that happen to interact in this one case.<div><br><blockquote type="cite"><div><div class=""><br class=""></div><div class="">The argumentation that "users of your framework could cause trouble (what they will do anyways ;-) with overriding" looses traction when you have to add "of cause that only applies to classes you made explicitly accessible to them".</div><div class=""><br class=""></div><div class="">Final is right in theory, but in real software, classes are rarely designed for inheritance — it just happens (and I'm quite sure most real software is build by people who would shrug of such discussions as academic nonsense ;-).</div></div></blockquote><div><br></div>If the time comes it is certainly a good thing if the language can remind you of the fact that you didn't consider it in the initial implementation by requiring you to mark the superclass inheritable.</div><div><br><blockquote type="cite"><div class=""><br class=""></div><div class="">Btw: I wouldn't oppose a proposal to allow changing conventions like this (there are at least two other discussions about the best default) on a per module/file basis — as long as the "local" effect of the setting isn't vital, there shouldn't be a problem with customizing.</div></blockquote><br></div><div>I would really be opposed to this. It would not be clear when reading code what it actually means. Copy and paste would also be problematic for similar reasons. Flags should not change the semantics of a piece of code.</div></body></html>