<div dir="ltr">A very emotional appeal, you don't seem to grasp the usability improvements this will give. I hear you but at this point appeals to Python's "Zen" don't help you.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 25, 2018 at 1:21 PM, Łukasz Langa <span dir="ltr"><<a href="mailto:lukasz@langa.pl" target="_blank">lukasz@langa.pl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">PEP 572 caused a strong emotional reaction in me. I wanted to first understand<br>
my intuitive objection to the idea before posting anything.<br>
<br>
I feel that (name := expression) doesn't fit the narrative of PEP 20. It<br>
doesn't remove complexity, it only moves it. What was its own assignment before<br>
now is part of the logic test. This saves on vertical whitespace but makes<br>
parsing and understanding logic tests harder. This is a bad bargain: logic<br>
tests already contain a lot of complexity that human readers have to cope with.<br>
<br>
Proponents of := argue it makes several patterns flatter (= better than nested)<br>
to express. Serial regular expression matching is a popular example. However,<br>
(name := expression) itself is making logic tests more nested, not flatter. It<br>
makes information in the logic test denser (= worse than sparse). Since it also<br>
requires an additional pair of parentheses, it forces the reader to decompose<br>
the expression in their head.<br>
<br>
:= also goes against having one obvious way to do it. Since it's an expression,<br>
it can also be placed on its own line or in otherwise weird places like<br>
function call arguments. I anticipate PEP 8 would have to be extended to<br>
explicitly discourage such abuse. Linters would grow rules against it. This is<br>
noise.<br>
<br>
I'm -1 on PEP 572, I think it's very similar in spirit to the rejected PEP 463.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- Ł<br>
<br>
</font></span><br>______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/<wbr>guido%40python.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>