<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 3/31/2016 19:22, Ben Finney wrote:<br>
    <blockquote cite="mid:8537r69qrj.fsf@benfinney.id.au" type="cite">
      <pre wrap="">No mention of keystrokes. I'm endlessly disappointed that discussions of
“too much noise in the code” are mis-interpreted as <b class="moz-txt-star"><span class="moz-txt-tag">*</span>only<span class="moz-txt-tag">*</span></b> about
writing, not about reading.</pre>
    </blockquote>
    Because, presumably, the people making those comments read a lot of
    code and don't see a problem with the two characters?<br>
    <br>
    >>> def foo():<br>
    ...   pass<br>
    ...<br>
    <br>
    There are four pieces of information in the first line of that
    definition.  It starts with the keyword at the beginning of the
    line.  Readers of languages that are left to right will instantly
    know they are in a function definition.  The next piece of
    information is the identifier that the function will be assigned
    too, and that is clearly defined right there.  The proposal would
    not change this.  The third is the argument list, in this case an
    empty one.  The fourth is the 'block delimiter' for lack of anything
    better for me to call it.<br>
    <br>
    As this example sits, that line should be read as "define a function
    named foo that explicitly takes no arguments with the following
    code."  Omitting the parens changes the way it reads to something
    along the lines of "define a function named foo with the following
    code."  The proposal has removed vital visual information.<br>
    <br>
    I said earlier that if this suggestion was made in 1991 it should
    have been accepted to make functions more consistent with classes. 
    I have changed my mind; in 1991 classes should have been corrected
    to always require parens.<br>
  </body>
</html>