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

Re: mental models of the world



   Date: Tue, 27 Nov 2001 08:00:44 -0700
   From: "Robert Spector" <spectorhome@rcn.com>

   And I think the Perl worldview applies to a wide range of programmers...
   but it has a sweet-spot
   for quick and effective solutions to small custom problems that can
   leverage the extensive libraries.

After (or perhaps during a break in) the LL conference, an interesting
discussion took place (on the 8th floor) about the question of what
constitutes "doing scripting", and how that relates to the question of
whether a particular language was a "scripting language", or more
accurately the degree to which a particular language is suitable for
the task of "scripting".

This is sort of what I was alluding to about the overhead of writing
"public static void main(String args[])" when all you're trying to
do is something that you can say in two short lines of shell commands.

During Olin Shivers's talk, I kept thinking back to how we had thought
many of the same ideas back at Symbolics.  I remember design
discussions about this that must have been before 1984 (because they
happened at our old Vassar St. building) about having a "command
processor" for the Symbolics software system.  We wanted an easy way
to type commands like "copy *.foo *.bar" and "delete foo.lisp", with
all the conveniences of auto-completion, context-sensitive help
messages, and so on.

A lot of us felt that if we created a command processor, then soon
people would want to have files of commands, and a way to execute all
the commands in a file.  Then someone would add a "goto" facility, and
someone else would add a crude "if" facility, and before you could
turn around, there would be a really ugly new language.  This seemed
inevitable, based on our experience with other computer systems.  We
really, really didn't want to create a new "script" language like
"csh" or all the various "exec_com" and "runcom" things that we were
all used to.

So we decided that we'd make some tools to make it easy to write
"commands", and the tools would always generate a Lisp function whose
calling sequence could be known easily by anyone who knew how to use
the command.  So, if you wanted to take some commands and turn them
into a program, it would be very easy to express any command line as a
call to a Lisp function.  Then you'd get the control structures for
free, and of course you'd get the full power of the language, and you
invoke any command-processor command from any Lisp program, etc.

And we did do that, and it all worked just fine.

(I'm sure that last comment will be interpreted as an invitation for
people to contribute all their favorite complaints about the
above-described software.  If you want to get into it on this mailing
list, OK, although I have to admit that my memory of the details of
all this stuff has become pretty fuzzy after 13 years of being away
from it.)