do...until wisdom needed...

Steve Lamb grey at despair.rpglink.com
Tue Apr 17 20:01:55 EDT 2001


On 17 Apr 2001 23:10:33 GMT, Neelakantan Krishnaswami <neelk at alum.mit.edu>
wrote:
>I note that precisely the same argument can be made about adding
>functions to a language.

    Not so.  Adding a fuction to the language means it is part of the language
that all would know.  A function is added, I can go to www.python.org and look
it up.  In fact I have done so when my Beazley book, written for 1.5.2, failed
me when I was working on Python 2.0.  

    However, the macros provide for undocumented contructs, undocumented
dialects.  One would then need to first learn those macros, those dialects,
before even reading the code.  Note that this is different than having to read
the functions that the person has written.  Why?  Functions are written in the
language, the macros /alter/ the language.  

    To take it to an analogy of natural languages (which is I say 'dialect' so
often) take American "standard" English, British "standard" English and a sub
dialect of each of those languages (Ebonics and Cockney?).

    They all come from the same roots.  Use those most common roots and
chances are high everyone will understand.  Words (keywords) are used to form
sentences (statements).  From those sentences come paragraphs
(functions/methods).  From paragraphs come chapters (libraries/classes).  From
the chapters come a book (program).  Even though each book (program) is
written from a set of chapters (libraries/classes) made of up paragraphs
(functions/methods) composed of sentences (statements) that must be read to
understand where the narrative is going (program is doing) one can read it
quite efficiently.

    However, change the dialect (macros), alter what the words (keywords) mean
and now it becomes a chore to even read the sentences (statements).  One must
then first study the dialect (macros) before being able to do more than muttle
through the sentences (statements) puzzling over each seemingly familiar word
which may or may not have the same definition as the one you've previously
learned.

    To me it is clear that there is a world of difference between reading a
new book (reading new code) in a language and dialect you are fluent in than
reading a new book in a dilect which is similar to but suffciently different
to the one you're accustomed to (code with macros).  Now imagine the variety
of dialects in the common national languages and imagine if each person could
redefine any given word in any manner they chose.  Right now we only have
regional differences and that is tough enough.  But a programmer with a macro
system on top of a programming language isn't really limited to regional
differences, is he?  As long as the code works, FOR HIM, then it works.  

    So, again, I find it laughable that adding the complexity of having to
relearn the language for each programmer's whimsy is somehow lauded as an
exercise in simplicity and efficiency.  More so when it is proven that
maintainability in such an open and free environment (Perl, in spite of what
Douglas Alan says) is hard to obtain.

    No, give me one dialect.  It may have limitations, to be sure, but the
massive increase in maintainability far outweigh any limitations there are.  

-- 
         Steve C. Lamb         | I'm your priest, I'm your shrink, I'm your
         ICQ: 5107343          | main connection to the switchboard of souls.
-------------------------------+---------------------------------------------



More information about the Python-list mailing list