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.