Why Scripting

What are the benefits of using a scripting language?

Further Reading

Scripting: Higher-Level Programming for the 21st Century , John Ousterhout, IEEE Computer Magazine, March 1998
Describes a "two language view" of application development. System programming languages are good for many low level tasks, but higher level scripting ("glue") languages are suited for application development and integration.
Why Scripting?
Dynamic Languages — ready for the next challenges, by design. , David Ascher, 2004
Lays out the case for scripting languages.

Productivity

Programming in a scripting language like Tcl, Python, or Rexx is easier than programming in a lower-level language like C, C++, and Java. There isn't as much coe to write, and iterating through the development process is faster.

An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program (alternate ), Lutz Prechelt, 2000-03-10, compared 80 different implementations of the same set of requirements by 74 different programmers for several different languages. It concluded that, among other things, programs written in Tcl, Rexx, and Perl took about half the programmer effort when compared with Java, C and C++. The study also showed that when programmers are given requirements more resembling a real-world programming task rather than a classic CS algorithm, scripting languages perform no worse on average than compiled languages in terms of speed, and often much better in other measures like memory usage. The study named Tcl as the most efficient language defined as most lines written per hour of programmer effort.

Separation of Powers/Concerns

There are a lot of software design paradigms that encourage separation of responsibilities between different parts of the system. One way to provide for that separation is to use a scripting language like Tcl/Tk for the GUI interface, and integrated C/C++/Java code for the backend database interface helps define that separation. This powerful paradigm may be applied elsewhere as well. Interfaces are a foundationl concept, and where there are interfaces there is a need for glue, i.e. a tool that acts as the middle layer when combining parts. Designing software with a script interface in mind leads to a good separation of concerns. Whether the internals are implemented in C, Java or a script language makes no difference -- it is only a design methodology.


Because the impedance mismatch between silicon and neurons is so extreme, that one needs at least two language/abstraction levels to bridge the gap -jcw

TV: Is that to transform for the sake of power conservation (use a transformer to get a good impedance match and therefore optimal power transfer fro AC signals), or is this somethings information- theoretical ? One starts thinking about a law of conservation of information. Oops, that's almost like leaping too far beyond my contentwise knowledge of contemporary black hole astrophysics..