Terminology: "script" versus "program"

samwyse dejanews at email.com
Thu Jan 24 13:22:04 CET 2008

Ben Finney wrote:
> George Sakkis <george.sakkis at gmail.com> writes:
>>On Jan 23, 8:14 pm, dwb... at gmail.com wrote:
>>>The annual Linux Journal survey is online now for any Linux users
>>>who want to vote for Python.
>>18. What is your favorite programming language?
>>(15 choices, Python not included)
>>19. What is your favorite scripting language?
>>o Python
>>o Perl
>>(5 more choices)
>>Python is much more than a "scripting language" (whatever this
>>means, other than a semi-derogatory term used by clueless PHBs).
>>Sorry, I'll pass.
> I agree entirely.
> The term "script" has the strong connotation of a limited-purpose
> program designed to solve a problem expressed almost entirely as a
> simple series of steps. Languages that are often used to write such
> scripts are usually referred to as "scripting languages", which
> becomes a denigration because such a language need not have support
> for much else.

I strongly disagree with your interpretation.  Scritping languages 
provide high-level facilites for process control.  Historically, they 
were purely interpretive but now they tend to compile to some sort of 
byte code.  Examples include the various shells, Rexx, and various 
languages whose names start with "P".  Languages which only express a 
"series of steps" are generally called batch languages.  I've never 
heard anyone refer to a .BAT file as a script.

In scripting languages, speed of execution is often less important than 
speed of implementation.  When speed of execution is important, it is 
easier to invoke an external module than to patch or rewrite the 
interpreter.  In Python, PERL and BASH, these modules can be dynamically 
linked libraries as well as stand-alone executables.

Finally, the provided process control facilities are often generalized 
into quite powerful support for "programming in the large", especially 
both object-oriented and functional programming.  This leads to supprot 
for a much broader set of practices and solutions than any mere 
programming language can easily provide.

The only drawback I've ever found to this is that it's easy to 
accidentally use huge amounts of memory, for instance by 'slurping' 
files into memory in a single command.

 > This term seems quite prevalent among the Python core developers,
 > unfortunately. The 'distutils' module even has the term 'script' used
 > in its interface, to refer to the programs that are to be distributed.

Apparently the core developers agree with my interpretation, not yours.

More information about the Python-list mailing list