[Baypiggies] Frequently Argued Objections
Warren Stringer
warren at muse.com
Sun Jun 22 21:19:47 CEST 2008
Hey Andy,
Point well taken about *clear* versus *concise*, though, ironically,
when looking up both words, I found the Merriam-Webster definition of
'concise' (with one definition) to be more clear than that of
'clear' (with six definitions). My interpretation of your statement is
that some redundancy is useful. Agreed; for example:
The advantage to Ruby is that it makes it easy for me to create a
domain specific language. The problem with Ruby is that it makes it
easy for everyone else to make a domain specific language. So, I am
more likely to send more time, while reading someone else's Ruby code,
in figuring out their codec, as it were. With Python, the codec
remains static. There is usually some symbol redundancy in a static
codec. But, that means it will be easier for me to read your code and
vice versa.
As for "hand-waving magic happens that is either not extremely well-
documented or extremely well-understood." Is that a problem with
implicit self or a badly managed namespace? It is still possible to
write obscure Python code. I would like to see a Python example, using
explicit self, compared to a fake-Python version of the same example,
using implicit self, that demonstrates how the former is clearer than
the later. Hopefully, both examples will follow a few best practices
in managing namespace; less convincing would be to use -say- a global
function with the same name as a class method.
\~/
On Jun 22, 2008, at 10:54 AM, Andrew Toulouse wrote:
> 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.
>
> I've always hated when languages force me to use an implicit 'self'
> or 'this' because if I don't immediately realize I'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't exist directly to express complexity concisely, but rather
> to express complexity *clearly*. I don't think there'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.
>
> --Andy
>
> 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.
>
> On Sun, Jun 22, 2008 at 10:25 AM, Warren Stringer <warren at muse.com>
> wrote:
> [[[snip]]]
>
> *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.
>
> Since we're taIking about Objections, I find the statement "explicit
> is good", without a justification, to be Objectionable. 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.
>
> IMO, languages evolve by compressing complexity. Just as Morse Code
> compressed symbols tapped by hand over a wire, where the most common
> symbol "E" 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.
> 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 'E', where it belongs, but to the letter 'Z'.
>
> While some people may see "self" as an issue of faith, others see it
> as a statistical anomaly (in an otherwise compact language).
>
> Cheers,
>
> \~/
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20080622/7b78053c/attachment-0001.htm>
More information about the Baypiggies
mailing list