[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: "Python for Lisp Programmers"



Quoth Shriram Krishnamurthi...
>That said, I don't think your claim is all that obvious to me.
>Lookit: when I first sit down to program, my only intuitive
>programming language is English, or Magyar, or Tamil, or Tagalog, or
>whatever it is I speak with other automata (aka, people).

>Every programming language is artificial.  If I know even a little
>arithmetic, there's no good reason why I should use `*' for
>multiplication -- except that the multiplication character isn't on my
>keyboard.  As Dan Weinreb and others have said, ditto for using a
>slash for division.  And what's with all the parens being the same
>height?  And math notation is itself an arbitrary collection of
>cultural assumptions.

This is all true, and for that matter, English and English orthography is
"artificial."
HOWEVER, human languages and scripts reflect millions of years of
bio/cultural evolution and have been designed for (and designed by) the
constraint that language must be useful and rewarding for infants, even when
they are primitive users.  Human languages are "of the people, by the people
and for the people"   Unfortunately, programming languages are "of the
computer scientists, by the computer scientists" and therefore despite best
intentions "for the computer scientists".  This is the cross they and their
"customers" (we language users) have to bear.

And yet, it seems obvious that what we WANT is a computer language that is
useful even when used by a sloppy novice (my latest definition of
lightweight) with plenty of scope for "grownup expertise".

As a non-language creator (with interest and admiration for you who do) I've
wondered what is needed to help language creators envision the languages
non-language creators need.  I don't have an answer.  But I will point out
that the dimensions of lightweightedness may be easier to identify within a
language family rather than between.  For example, (1)  VPython's 3D
graphics extensions and documentation are clearly spectacularly
"lighterweight" than other Python 3D graphic extensions I've looked at.  (2)
Based on such considerations, I'd also argue that at the moment, Jython is
much less lightweight than Python because mastery of the toolset requires
that the jython user "crack" the more difficult code of java and the java
documentation.

Interestingly, both of these cases could be alleviated not just by invention
of lighterweight language per se, but by development of "onramp"
documentation and interfaces ....

In case I seem to have digressed from my digressions I will conclude: mere
toddlers can learn human languages and toddlers can use and enjoy the TV
remote-control, even though the latter is clearly "artificial".  The VCR's
remote really *is* more intuitive than say, its programming interface and
that's why we still see "flashing 12:00s" on digital displays everywhere.

Which is not meant as criticism, exactly.  Thanks, all, for caring and
trying.