Python advocacy

Steve Horne sh at ttsoftware.co.uk
Fri Dec 15 09:26:05 EST 2000


On Fri, 15 Dec 2000 00:29:34 -0500, Peter Hansen <peter at engcorp.com>
wrote:

>jschmitt at vmlabs.com wrote:
>> 
>> I just read this good article about Perl advocacy.  I think it applies
>> to Python equally.  I found the link mentioned from /. this morning.
>> 
>> http://www.perl.com/pub/2000/12/advocacy.html?wwwrrr_20001213.txt [snip]
>
>I didn't bother reading the whole thing because I noticed early on (and
>confirmed throughout) that the author is oblivious to the huge
>investment people put into developing systems in a particular language
>(not to mention the investment in *learning* that language) and the fact
>that as long as the language stays popular, improves, and continues to
>serve their needs well, they get a payoff from that investment.

Pardon. OK - it wasn't an issue he discussed - but that doesn't make
him oblivious. From what he was describing, he has made a much bigger
investment in these things than the average programmer. To quote from
the article...

: One of the things I found most dismaying about the Perl 6 RFC process
: was the parochialism of many of the submissions. The submitter would
: be trying to solve some problem, and would come up with a crappy
: solution. And meanwhile, there would be a perfectly serviceable
: solution in the language next door, just waiting to be reused.
: But it seemed as though a lot of the people making proposals only
: knew Perl, and not any other languages.

Hardly the words of someone with no investment in Perl, or for that
matter in the development of programming languages, are they?

I'd be interested in knowing how you can 'confirm throughout' without
reading the whole thing. It sounds to me that you have made exactly
the kind of presumption-before-the-facts that the author was
complaining about.

If you read the whole article, for instance, you would know that the
author was not complaining about advocacy in general, merely about the
way it tends to be done. In fact, here's another quote...

: I don't really hate advocacy. I just hate the way we do it most of
: the time.

You, on the other hand, seem to be advocating advocacy in exactly the
tribal sense that the author describes and, seeing an opinion other
than your ideal, seem to wrongly assume that his article is nothing
more than a shallow justification for the opinion that 'advocacy is
bad'.

My opinion: I largely agree with this article. On comp.lang.c, for
instance, I am sick to death of people being bullied for merely
mentioning C++, or using words like 'assert' in the general
programming sense rather than as they are described in the ANSI C
standard. And I am also honest enough to say that I've sometimes
fallen into the tribal advocacy trap myself - particularly with
respect to Perl, which I strongly dislike. But overall my dislike of
Perl is based on a number of bad features of Perl, not on the fact
that I like python.

>If the language "dies", that investment is largely lost.
>
>The theory is that by advocating a language one can increase the
>likelihood of its survival and improvement.  If true, then advocating a
>language directly serves ones own needs.

OK - assume you have a co-worker who does a similar job to you. Do
you...

a.  Sabotage everything he does in the hope that he will be sacked,
    leaving you safe.
b.  Co-operate with him in the hopes of getting more of the work done,
    and of possibly learning some new tricks that you can use to
    improve your own value in the future.

I have an investment in a number of languages and, like the author, I
don't see the successes of some as failures of the others. I will
quite happily advocate Pascal, Modula 2, Ada, C, C++, Java, BASIC,
Icon, Lisp, Haskell, Miranda, Prolog, Forth and various others. I will
not advocate COBOL, but I will advocate some features of COBOL. I have
made a large investment in all of these languages, and will continue
to make investments in most of them and in any others that I happen to
find useful.

Note the language Icon. If you check up, you will find that it is in
fact all but dead. Is my investment a waste? - No. The concepts that
Icon pioneered are so useful that I have developed a C++ library to
support similar concepts, and someone recently announced a generator
library for Python in this newsgroup.

>There is no reason to focus on the fact that people appear to take this
>sort of thing personally.  That's probably just human nature, and likely
>not even a Bad Thing.  The point is there are good and wholly rationale
>reasons for advocacy even in its current style, and you could say that
>anyone who does *not* advocate a particular language is contributing to
>its demise (the "if you're not part of the solution, you're part of the
>problem" theory of life :-).

Yes, advocacy is important. It is a large part of how new languages
become successful. But exclusive there-is-only-one-answer advocacy is
not the same thing. It does not lead to progress - only to stagnation.
It is the reason a whole range of ideas are dismissed as unnecessary
and irrelevant, instead of being sought out as new tools to add to the
toolbox - tools which may be better than any other tool for certain
jobs.

Just as for Perl, Python would not be in its current form except that
people recognise that it has failings, and that there are better
methods in other languages. An obvious example - the list
comprehensions would not be useful except that filter, map and lambda
have weaknesses. List comprehensions are copied directly from
functional languages such as Haskell, which in turn copied them from
mathematical set notation. This does not mean that older versions of
Python were universally bad, or that Haskell is universally good. It
simply means that Python 2 got a bit better by copying a good feature
from another language (or in this case, paradigm).

In fact, Guido van Rossum himself was an ABC advocate who recognised
that ABC had failings - if he hadn't been, Python would never have
existed.

>I think I'll just ignore whatever other, possibly valid points
>Mark-Jason Dominus may have made and carry on advocating as I always
>have.  He hasn't convinced me.

How could he convince you - there are none so blind as those who will
not see. You had already decided what you thought he meant without
even reading the article. You made a judgement before bothering to
gather all the relevant facts, based on a shallow viewpoint. In short,
you are displaying a kind of prejudice.

But at least you admit that what you are ignoring could be valid. We
should all be grateful for small mercies.

-- 
Steve Horne
Home : steve at lurking.demon.co.uk
Work : sh at ttsoftware.co.uk



More information about the Python-list mailing list