From another perspective: What's the definition of application
and script? This shows up in
http://dictionary.com:
Application
-
Computer Science. A computer program with a user interface.
A CLI is also an user interface, isn't it?
-
3: a program that gives a computer instructions that provide
the user with tools to accomplish a task; "he has tried
several different word processing applications" syn: application
program, applications programme
Another user-oriented def
-
<programming, operating system> (Or "application", "app") A
complete, self-contained program that performs a specific
function directly for the user. This is in contrast to system software such as the operating system kernel, server processes and libraries which exists to support application
programs.
Editors for various kinds of documents, spreadsheets, and
text formatters are common examples of applications. Network
applications include clients such as those for FTP,
electronic mail, telnet and WWW.
The term is used fairly loosely, for instance, some might say
that a client and server together form a distributed
application, others might argue that editors and compilers
were not applications but tools for building applications.
One distinction between an application program and the
operating system is that applications always run in "user
mode" (or "non-privileged mode"), while operating systems and
related utilities may run in "supervisor mode" (or "privileged
mode").
The term may also be used to distinguish programs which
communicate via a graphical user interface from those which
are executed from the command line.
Now that is application versus system. May apply
to many perl programs, actually.
Script
-
Computer Science. A simple program in a utility language or an application's proprietary language.
What would an utility language be? Is 'C' an utility language?
-
A program written in a scripting language, but
see Ousterhout's dichotomy.
Scripting language?
-
scripting language (Or "glue language") A loose term for any language
that is weakly typed or untyped and has little or no
provision for complex data structures. A program in a
scripting language (a "script") is often interpreted (but
see Ousterhout's dichotomy).
Well, let's look that up than.
-
John Ousterhout's division of high-level
languages into "system programming languages" and "scripting
languages". This distinction underlies the design of his
language Tcl.
System programming languages (or "applications languages") are
strongly typed, allow arbitrarily complex data structures,
and programs in them are compiled, and are meant to operate largely independently of other programs. Prototypical system
programming languages are C and Modula-2.
By contrast, scripting languages (or "glue languages") are
weakly typed or untyped, have little or no provision for
complex data structures, and programs in them ("scripts")
are interpreted. Scripts need to interact either with other
programs (often as glue) or with a set of functions provided
by the interpreter, as with the file system functions
provided in a UNIX shell and with Tcl's GUI functions.
Prototypical scripting languages are AppleScript, C Shell,
MSDOS batch files, and Tcl.
Many believe that this is a highly arbitrary dichotomy, and
refer to it as "Ousterhout's fallacy" or "Ousterhout's false
dichotomy". While strong-versus-weak typing, data structure complexity, and independent versus stand-alone might be said
to be unrelated features, the usual critique of Ousterhout's
dichotomy is of its distinction of compilation versus interpretation, since neither semantics nor syntax depend
significantly on whether code is compiled into
machine-language, interpreted, tokenized, or
byte-compiled at the start of each run, or any mixture of
these. Many languages fall between being interpreted or
compiled (e.g. Lisp, Forth, UCSD Pascal, Perl, and
Java). This makes compilation versus interpretation a dubious parameter in a taxonomy of programming languages.
Ah! That seems sensible. let's stick with that.
And is VB strongly typed? Yeah, guess it is (but see
elsewhere in this thread on interpreted) (Update: I should
have said: it's stronger typed than perl, perhaps). And I think most
of them VB coders wouldn't dubb Java stuff 'scripts', but we know better
now, do we?
Update: In retrospect, the definitions above actually
show that the terms 'application' and 'script' are orthogonal.
An application is defined in terms of user interaction, while
a script is defined in terms of the programming language, or
in terms of programming approach, as tilly arguments elsewhere
in this thread.
So a script can be an application, and not every program
automatically is an application.
I noticed furthermore that C can be argumented to have weak typing,
and so can be seen as having 'scripting' features.