<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On 21 Feb 2017, at 13:19, Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com" class="">brent@architechies.com</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: 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="">Really?
 Three sentences presenting an unsupported opinion?</span></div>
</blockquote>
</div>
<div class=""><br class="">
</div>
<div class="">I’ll concede that the proposal makes a claim that might very well be disproved. I would very much like to see an actual example of a public class that **has** to be public but **shouldn’t** be open for obvious reasons. I would happily accept being
 shown wrong on that point.</div>
<div class=""><br class="">
</div>
<div class="">Besides, I don’t claim this use-case never happens, but only that it is not so common. Although, this remark wasn’t included in the proposal, I also claim that for those instances, the risk involved is generally be acceptable. To some extent,
 this opinion is also shared in SE-0117:</div>
<div class=""><br class="">
</div>
<div class="">“Within a single module, this can be tolerable, but across library boundaries it's very problematic unless the superclass has established firm rules from the beginning.”</div>
<div class=""><br class="">
</div>
<div class="">The idea is to say that if the use-case is rare (once again, I’d accept being shown wrong here) and the problems it involves are tolerable, then the added complexity induced by an additional access level and its keyword is not worth it.</div>
<div class=""><br class="">
</div>
<div class="">Like SE-0117, I too advocate that “designing a class well for subclassing takes far more effort than just designing it&nbsp;for ordinary use”. My belief however is that `open` doesn't fixes this issue. Instead, it hinders considering marking an entity
 `final`, as one may think that `public` is safe enough. In addition, the role of `final` for public entities becomes unclear for the library user, as anything not marked `open` can be understood as `final` anyway.</div>
<div class=""><br class="">
</div>
<div class="">The asymmetry induced by `open` in the language is a fact. As stated by the documentation: “Open access applies only to classes and class member”. I’d be tempting to say that asymmetry in any system adds complexity to the said system. To the very
 least, it makes the asymmetry an exception to know about.</div>
<div class=""><br class="">
</div>
</body>
</html>