Larry Wall's comment on python...

Tim Daneliuk tundra at
Fri Sep 6 23:10:07 CEST 2002

> The very idea of Larry Wall lecturing on code readability is hilarious.
> -Dave

Well, that's true, but for all of its similarity to line noise, perl has
been an enormous contribution to our profession/community. I would never want
to diminish Wall's stature, therefore.

As someone deeply steeped in Algol-derived languages (C, PL/M, PL/I, Java ...),
I find Python's indentation approach refreshing on two (pardon the expression), levels:

      - It makes the compiler/interpreter do the work instead of me -  Why should I have
        type {} and ; when the language can figure it out for itself.

      - It causes me to factor code better.  Python encourages a style that
        obviates (some of) the need for the kind of syntactic structures found in older
        block-structured languages.

Wall's comment is correct if you insist on Algol-style block
structuring.  But Python encourages you to factor in a way that makes
such block structure different and perhaps less necessary.  In
particular, the ability to combine functional, procedural, and object
constructs in a seamless way gives you the ability to do a lot of
structuring and scoping *implicitly* w/o the need for explicit
indentation or block delimiting.  Python not only "Fits Your Brain", it
changes how your brain processes and reduces problems.  *This*,
in my view is why the absence of block delimiters is not a big deal.

On a personal note, I've had an interesting year - I've been coding in nothing
but Python (Unix & Win32) and *assembler* (embedded PIC processors).  Talk about
a contrast!  Yet in both cases, the languages "Fit My Brain" for the tasks at
hand.  For instance, I find almost all compiled languages (even C) intrusive
when writing code for embedded systems.  Assembler is so much more expressive
there because *it directly reflects the state of the hardware being controlled.*
Similarly, I love Python for most other (higher level) tasks because *it painlessly
reflects the state of the computational problem being solved.*  Now, I only wish
for an excellent Python optimizing compiler with a retargetable code generator ...
*that* would be Bliss (and I don't mean the language ;)

Tim Daneliuk
tundra at

More information about the Python-list mailing list