Script v. Program

Here is how wikipedia describes a scripting language:

… “Scripts” are often treated as distinct from “programs”, which execute independently from any other application. At the same time they are distinct from the core code of the application, which is usually written in a different language, and by being accessible to the end-user they enable the behavior of the application to be adapted to the user’s needs. Scripts are often, but not always, interpreted from the source code or “semi-compiled” to bytecode which is interpreted, unlike the applications they are associated with, which are traditionally compiled to native machine code for the system on which they run. Scripting languages are nearly always embedded in the application with which they are associated.

They do go on to make a concession:

Historically, there was a clear distinction between “real” high speed programs written in languages such as C, and simple, slow scripts written in languages such as Bourne Shell or Awk. But as technology improved, the performance differences shrank and interpreted languages like Java, Lisp, Perl and Python emerged and gained in popularity to the point where they are considered general-purpose programming languages and not just languages that “drive” an interpreter.

I don’t like it. I think that this is one of those cases where language has evolved in a way that hasn’t been captured completely.

So tell me… when you hear (or use) the word ‘script’, what connotation comes along with it for you?

4 comments

  1. Greg Wiley

    While the lines are getting blurred, a script to me is any program that doesn’t require a separate compile step on the part of the developer. So when I write Perl, ksh, or even the occassional .bat/.vbs/.wsh (gag), I’m scripting.

  2. Kapil Gupta

    interesting point. I’m struck by the fact that we refer to perl “scripting” but java “programming”, though both are interpreted. (part of that is possibly because perl is a simpler language?)

  3. Jonathan Feinberg

    @2

    The lines between “interpreted” and “compiled” are not as clear as you imply. Java, for instance, is indeed compiled to machine code by the JIT compiler in the VM. It is not “intepreted.”

    @OP

    I consider a script to be a program whose primary function is to run other programs.

  4. Beau Key

    @1: “.bat/.vbs/.wsh (gag)” => I love to script in .bat/.vbs/.wsh (+WMI & ADSI). Everything to maintain and manage 98+% of all of the computers -on this earth-!
    @3: Yes, scripts are invoking the best of the underlying Operating Systems. Just a sequence of commands.

    As for the speed, yes the performance of scripts sucks (just like Java). However on our modern machines you don’t give a damn if script takes a few seconds more than (much more complex) compiled program. Easy to change and to test (-without- the compiler!).

    Scripting rules for me. I do not have to learn all the secret rituals to create a program, compile it, and make it run the way I like it!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>