Larry Wall on Python's Syntax

merlyn on 2004-05-13T19:11:20

Recently seen on perl6-language:

Python's syntax succeeds in combining the mistakes of Lisp and Fortran.
I do not contrue that as progress.

Larry


whitespace

inkdroid on 2004-05-13T19:25:47

Thankfully he didn't say anything about whitespace. That complaint gets old quick :-)

Re:whitespace

zatoichi on 2004-05-13T23:15:01

We already know that forcing whitespace is a bad thing, so it didn't need to be said. ;-)

Re:whitespace

inkdroid on 2004-05-14T10:28:26

Perhaps I've hung out here too long...

Re:whitespace

gnat on 2004-05-14T18:33:39

I've been playing with Python, and I'm much more sanguine about the whitespace thing now that I've used it. Any Python smackdown requires more than "whitespace bad, curlies good". But it still deserves a smackdown. All that nonsense about being intuitive and executable pseudocode is fiction.

--Nat

Re:whitespace

zatoichi on 2004-05-15T23:26:10

I have used Python as well. The longer I had to deal with the indentation the more annoying it got to me.

Re:whitespace

chromatic on 2004-05-19T16:33:23

Don't care much for all those underscores around methods either, huh?

I'm a little saddened by that, actually

btilly on 2004-05-14T00:44:04

I would have loved to see him include COBOL in that list, and see whether any Python fans figured it out.

OTOH given how much flack Larry has taken over significant whitespace rules in Perl 6, he may feel that it is best to just avoid that topic.

Re:whitespace

rafael on 2004-05-14T08:39:25

Actually he did. Well, not really whitespace, but indentation nonetheless.

Fortran had Facist whitespace first

n1vux on 2004-05-19T21:49:29

Fortran had mandatory whitespace / indents -- columns 1-6 and 73-80 were sacred. (There weren't columns past 80 in Fortran, since even on TTY Fortran "knew" it was reading "cards" *sigh*)

Google finds us a reference from which I can reconstruct the following, which I could almost have recited from slowly fading memory:

  • Statement labels in columns 1 to 5
  • C or * in column 1 indicates comment
  • Non-zero non-blank in Column 6 is Continuation marker (like \ at end of line, except at beginning of next line!)
  • Statements in columns 7 to 72
  • 73-end (80 nom) ignored, used for sequence numbers (in case you dropped your deck) -- or revision markers for version control, if you were really daring, or had migrated to all tape-and-disk.

There was a Fortran IV pre-processor called FLEX that could not only pretty-print your code with ascii arrows but would parse the pretty-printed form if you edited it. (It was a competitor to Bell's RATFOR and a precursor of the new-fangled Fortran 77, not to be confused with Flex 2, which was more pascalene deviant fortran, and the Gnu Flex which is rather different altogether.) The parselmouths or herpetologists may not count it as a precursor influence, but it was the first Fortran to extend mandatory whitespace into the statement area!

Yes, I said "card" and referred to a standard promulgated in 1977 as new-fangled; these tools may have been obsolescent before you were born, if you don't remember the Great Renaming.