<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>