<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>On Sep 10, 2015, at 11:57, Matthias Kramm via Python-ideas <<a href="mailto:python-ideas@python.org">python-ideas@python.org</a>> wrote:</div><div><br></div><blockquote type="cite"><div><div dir="ltr">On Wednesday, September 9, 2015 at 1:19:12 PM UTC-7, Guido van Rossum wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Jukka wrote up a proposal for structural subtyping. It's pretty good. Please discuss.<br><br><a href="https://github.com/ambv/typehinting/issues/11#issuecomment-138133867" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2Fambv%2Ftypehinting%2Fissues%2F11%23issuecomment-138133867\46sa\75D\46sntz\0751\46usg\75AFQjCNGkLDRhZzgQ26XG6xvrfB7qY7HlIw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2Fambv%2Ftypehinting%2Fissues%2F11%23issuecomment-138133867\46sa\75D\46sntz\0751\46usg\75AFQjCNGkLDRhZzgQ26XG6xvrfB7qY7HlIw';return true;">https://github.com/ambv/<wbr>typehinting/issues/11#<wbr>issuecomment-138133867</a></div></blockquote><div><br></div><div>I like this proposal; given Python's flat nominal type hierarchy, it will be useful to have a parallel subtyping mechanism to give things finer granularity without having to resort to ABCs.</div></div></div></blockquote><div><br></div><div>I don't understand this, given that resorting to protocols is basically the same thing as resorting to ABCs.</div><div><br></div><div>Clearly there's some perceiving difficulty or complexity of ABCs within the Python community that makes people not realize how simple and useful they are. But I don't see how adding something that's nearly equivalent but different and maintaining the two in parallel is a good solution to that problem.</div><div><br></div><div>There are some cases where the fact that ABCs rely on a metaclass makes them problematic where Protocols aren't (basically, where you need another metaclass), but I doubt that's the case you're worried about.</div></body></html>