<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 20 July 2017 at 19:51, INADA Naoki <span dir="ltr"><<a href="mailto:songofacandy@gmail.com" target="_blank">songofacandy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Jul 21, 2017 at 12:12 AM, Ivan Levkivskyi <<a href="mailto:levkivskyi@gmail.com">levkivskyi@gmail.com</a>> wrote:<br>
> To be honest, I am not very happy with addition of a new special class.<br>
> Imagine that the PEP 544 will be accepted (and I hope so).<br>
> Then we would have, abstract classes, abstract base classes, and protocols.<br>
> I think users will be overwhelmed by having<br>
> three similar concepts instead of one.<br>
<br>
</span>Hmm, couldn't split protocol and ABC?<br>
<br><span class=""></span></blockquote><div><br></div><div>Unfortunately no, it was considered and rejected for various reasons (in particular to provide smooth transition to protocols).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> I think we still could squeeze a lot of performance from good old ABCs by<br>
> optimizing various parts and reimplementing some parts in C.<br>
> In fact, my desire to optimize and rewrite ABCMeta in C is partially due to<br>
> reluctance to add yet another concept of "abstractness".<br>
><br>
<br>
</span>Even if it's implemented in C, issubclass implementation is much complicated<br>
than normal type.<br>
I don't want to introduce unnecessary complexity because I'm minimalist.<br>
<br></blockquote></div><br></div><div class="gmail_extra">This complexity is already there, and attempt to reduce might lead to actually an increase of complexity.<br></div><div class="gmail_extra">This is probably the case where I would be with Raymond in terms of performance vs ease of maintenance.<br></div><div class="gmail_extra"><br>--<br></div><div class="gmail_extra">Ivan<br></div><div class="gmail_extra"><br><br></div></div>