No true Scotsman. Even circuit diagrams aren't completely explicit,
since  they can be fabricated in any number of arrangements that affect
signal integrity. That's not the point. I like 'explicit is good'
because I absolutely *hate* it when hand-waving magic happens that is
either not extremely well-documented or extremely well-understood.<br>
<br>I&#39;ve always hated when languages force me to use an implicit &#39;self&#39;
or &#39;this&#39; because if I don&#39;t immediately realize I&#39;m looking at a class
method as opposed to a function I need to reread the whole function
with the right scope in my head. In my opinion, Python doesn&#39;t exist
directly to express complexity concisely, but rather to express
complexity *clearly*. I don&#39;t think there&#39;s any universal purpose to
high-level languages, either, beyond some vague common theme of
abstracting out details for either conciseness or clarity or what have
you.<br>
<br>--Andy<br><br>P.S. sorry for those of you who are getting my emails twice; i keep on forgetting to change which email I send this from.<br><br><div class="gmail_quote">On Sun, Jun 22, 2008 at 10:25 AM, Warren Stringer &lt;<a href="mailto:warren@muse.com">warren@muse.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">[[[snip]]] <br></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
*Is* there a reason to NOT use self? If not, then self is redundant. If the reason to use self is to bypass name resolution order, then I would suggest making the less common case explicit and the more common one implicit.<br>

<br>
Since we&#39;re taIking about Objections, I find the statement &quot;explicit is good&quot;, without a justification, to be Objectionable. &nbsp;The only truly explicit computer language is a circuit diagram. Even assembly language is implicit; anything with op codes is a transformation of an explicit routing of electrical charges to an implicit pattern that acts on an operand. Higher level languages build upon lower level ones by transforming explicit combinations into an implicit pattern.<br>

<br>
IMO, languages evolve by compressing complexity. Just as Morse Code compressed symbols tapped by hand over a wire, where the most common symbol &quot;E&quot; required a single tap. Python reduces complexity by removing the redundancy created by the often unnecessary enforcement of policy with typed variables and by removing the redundancy of using begin/end symbols (for the compiler) along with whitespace (for the human coders), when simply using whitespace would suffice. &nbsp;As a result, Python is a more concise by making coding policy implicit. However, Python is less concise when it enforces a policy about making name resolution order explicit. From a statistical viewpoint, this is akin to a Morse Code that assigning a single tap, not to the letter &#39;E&#39;, where it belongs, but to the letter &#39;Z&#39;.<br>

<br>
While some people may see &quot;self&quot; as an issue of faith, others see it as a statistical anomaly (in an otherwise compact language).<br>
<br>
Cheers,<br>
<br>
\~/<div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
Baypiggies mailing list<br>
<a href="mailto:Baypiggies@python.org" target="_blank">Baypiggies@python.org</a><br>
To change your subscription options or unsubscribe:<br>
<a href="http://mail.python.org/mailman/listinfo/baypiggies" target="_blank">http://mail.python.org/mailman/listinfo/baypiggies</a><br>
</div></div></blockquote></div><br>