Why is Python popular, while Lisp and Scheme aren't?

Delaney, Timothy tdelaney at avaya.com
Wed Nov 20 20:43:41 EST 2002


> From: Pascal Costanza [mailto:costanza at web.de]
> 
> Delaney, Timothy wrote:
> >>From: Pascal Costanza [mailto:costanza at web.de]
> >>
> >>Meiner Meinung nach hängt das im wesentlichen immer davon 
> ab, welche 
> >>Sprache man zuerst gelernt hat, oder welche man am 
> häufigsten benutzt.
> >>
> >>If you don't understand this, would you consider German to be less 
> >>readable than English? (Run that sentence through 
> >>http://babelfish.altavista.com to get my point. ;)
> > 
> > 
> > Having been involved in these debates before, I now try to 
> avoid them
> > (except when trying to get Python used on a project ;)
> > 
> > However, you measure readability by how readable something 
> is at comparable
> > skill levels. So if I were fluent in both German and 
> English (I'm not),
> > *and* you had provided the English version (not necessarily a direct
> > translation, but the equivalent meaning) then I could make 
> a judgement. If I
> > had no fluency in either, I could not make a meaningful judgement.
> 
> No, I am saying that many statements about the readability of 
> programming languages are made from a perspective of being 
> fluent in one 
> but not in the other language. I don't think that there are any 
> programming languages that are per se more readable than 
> others. Heck, 
> this isn't even true for natural languages. That's the whole 
> point of my 
> argument. I could have made this example even more extreme by 
> giving it 
> in Japanese, or sign language, or Braille language.

You asked how to define readability, and then used an example which is
completely non-understandable to someone who is not at least passingly
fluent in German.

This is a strawman argument. Readability can only be determined by someone
who has equivalent skill in both domains. Of course people who do not have
such qualifications make statements about the readability of one or the
other.

A person with normal eyesight, who is equally skilled in both reading
English and Braille, would be able to judge the readability of a book
written (in English) in both a "normal" typeface and Braille (and the result
may well be "equal"). A blind person would be unable to make such a
judgement, because they are unable to read the non-Braille version.

Would you take issue with a blind person saying that a non-Braille book was
completely unreadable? I personally would make the point that it may be
unreadable for them, but it's perfectly readable for me.

Background obviously makes some things more readable than others. Someone
whose first language is alphabetic is going to find Japanese, Thai, etc much
less readable than their native language even if they are completely fluent
in both.

> So which of the two following expressions do you find more readable. 
> According to your statement it should be the first because it's closer 
> to English.
> 
> 1) ADD A TO B GIVING C
> 2) c = a + b

Not at all - for three reasons.

1. I have had a *strong* background in languages where #2 has meaning.

2. Whilst it does not mean the same thing as in mathematics, it is related
to the mathematical meaning, and uses mathematical symbols that I am used
to. In particular, it is similar to the form "if we assume that c equals a
plus b" which is commonly used in proofs.

3. I would *never* use the construct you give as #1 - if I were to say
anything, it would be "set c equal to a plus b".

What I can state, unequivocably, is that as a new python user (some time ago
now ;) I was able to understand and modify existing python code very easily.
Part of this is due to a background in (primarily) procedural languages, but
most of it was because the syntax is so clear and (in general) module and
function names are well-chosen.

As an expert I am able to take large amounts of existing code and in a
relatively short period of time understand most of what it does.

I can also state that I have *never* been able to grasp the intention of
anything beyond the most trivial Lisp code without studying it in depth. I
have had similar experiences with other languages (C, SQL, Prolog, Perl are
four examples).

Tim Delaney




More information about the Python-list mailing list