Subject: Re: Is there a useful distinction between "programming" and "scripting" languages?
From: Erik Naggum <erik@naggum.no>
Date: 17 Sep 2002 17:00:48 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3241270848355795@naggum.no>

* Erann Gat
| The argument about whether HTML is or isn't a "programming" language
| reminded me of something I've been wondering about for a while: is there a
| useful distinction to be made between "programming" and "scripting"
| languages?

  A scripting language modifies a working system to do certain additional tasks
  or existing tasks differently and cannot exist without the working system.  A
  programming language builds a working system from scratch.

  Take Perl.  It started out as an ugly scripting language that took a working
  Unix system and made certain labor-intensive tasks, provided you had done
  something stupid to begin with, less labor-intensive, so you suddenly had
  reason not to do them less stupidly.  It added nothing useful to the Unix
  environment except a little more convenience than the standard tools if you
  had been a bonehead.  In effect, Perl encouraged stupidity from Day 1 and
  made it virtually impossible to redesign things more intelligently because so
  many people had Perl scripts that depended on the old boneheaded design and
  execution.  Also, being a great fan of regular expressions, Perl discouraged
  people from developing languages and syntaxes that were actually parsable by
  non-idiot software.  Being such a horrid approximation to programming, Perl
  fit scripts with the operating principle "Damn the false positives and false
  negatives alike, full stream ahead!"  In effect, Perl required both a working
  system to be a parasite off of, and users who were willing to tinker with the
  scripts if they produced erroneous results.  In all likelihood, there was no
  change at all to the labor-intensiveness, but the labor was more "fun" for a
  certain class of people.  Now, industrious retards can be a horrible thing.
  Over a number of years, close to a decade, Perl accreted bits and pieces from
  programming languages and became usable in lieu of a programming language by
  people who lacked the mental wherewithall to do programming.  Tinkerers,
  repairers, handymen, the auto mechanics of the IT industry, all flocked to
  Perl because they could tinker so well with it with no required knowledge or
  skills.  Thus was "programmering performed by tinkerers" born as a concept,
  and the tinker toys of the unskilled became better and better.  Necessarily,
  a number of good people who watched this gruesome development unfold found
  that they could not let it do so without at least some guidance from working
  brains, and Perl acquired more and more features of a programming language.
  Yet, it still remains nothing mor than a scripting language, because it does
  not only require the entire Perl system to be present to amend its behavior
  according to the scripts, it does not even have the /potential/ to be
  stand-alone.

  So a different way to explain the difference is that scripting languages are
  parasitic where the programming languages are the hosts.

-- 
Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.