<div dir="ltr"><div>Thank you Guido! :-)<br></div><div><br>--<br></div><div>Ivan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 September 2016 at 20:18, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm accepting PEP 526 provisionally.<br>
<br>
I am personally confident that this PEP is adding a useful new feature<br>
to the language: annotations that can be used by a wide variety of<br>
tools, whether off-line type checkers or frameworks that add runtime<br>
checking (e.g. traits or traitlets).<br>
<br>
The provisional status reflects the understanding that minor details<br>
of the proposed syntax and its runtime effects may still have to<br>
change based on experience during the 3.6 life cycle. (For example,<br>
maybe we end up not liking ClassVar, or maybe we'll decide we'll want<br>
to support `x, y, z: T` after all.)<br>
<br>
There's been some quite contentious discussion about the PEP, on and<br>
off python-dev, regarding how the mere presence of annotation syntax<br>
in the language will change the way people will see the language. My<br>
own experience using mypy and PyCharm has been quite different:<br>
annotations are a valuable addition for large code bases, and it's<br>
worth the effort to add them to large legacy code bases (think<br>
millions of lines of Python 2.7 code that needs to move to Python 3 by<br>
2020). The effect of this has been that engineers using Python are<br>
happier and more confident that their code works than before, have an<br>
easier time spelunking code they don't know, and are less afraid of<br>
big refactorings (where conversion to Python 3 can be seen as the<br>
ultimate refactoring).<br>
<br>
I should blog about our experience at Dropbox; I hope the Zulip open<br>
source folks (not at Dropbox) will also blog about their experience.<br>
In the meantime you can read Daniel F. Moisset's three-part blog about<br>
adding annotations to pycodestyle (formerly pep8) here:<br>
<br>
<a href="http://www.machinalis.com/blog/a-day-with-mypy-part-1/" rel="noreferrer" target="_blank">http://www.machinalis.com/<wbr>blog/a-day-with-mypy-part-1/</a><br>
<br>
If you want to see a large open source code base that's annotated for<br>
mypy (with 97% coverage), I recommend looking at Zulip:<br>
<a href="https://github.com/zulip/zulip" rel="noreferrer" target="_blank">https://github.com/zulip/zulip</a><br>
<br>
Finally, some of us are starting a new (informational) PEP to set<br>
expectations for how type checkers should make use of the annotation<br>
syntax standardized by PEP 484 and PEP 526. This is going to take more<br>
time, and new collaborators are welcome here:<br>
<a href="https://github.com/ilevkivskyi/peps/blob/new-pep/pep-0555.txt" rel="noreferrer" target="_blank">https://github.com/<wbr>ilevkivskyi/peps/blob/new-pep/<wbr>pep-0555.txt</a>. (Mark,<br>
I really hope you'll accept the invitation to participate. Your<br>
experience would be most welcome.)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
--Guido van Rossum (<a href="http://python.org/~guido" rel="noreferrer" target="_blank">python.org/~guido</a>)<br>
</font></span></blockquote></div><br></div>