Updated 2012-01-11 18:59:03 by AMG

Why would you want to use a scripting language anyway? What are the benefits?

John Ousterhout described a "two language view" of application development in his article Scripting: Higher Level Programming for the 21st Centry which was published in March 1998 in IEEE Computer Magazine. System programming languages are good for many low level tasks, but higher level scripting (or "glue") languages are suited for application development and integration.

This paper and others such as 'Why Scripting?' can be found in the resource section of the Tcl Developer Xchange [1]

For a correct treatment safe to put in the hands of decision-makers, see David Ascher's 2004 "Dynamic Languages ..." [2].

Productivity

Many people assert that you can be a lot more productive in scripting languages like Tcl, Python, and Rexx than you can in lower level languages like C, C++, and Java. The primary assertions are that you can get more work done with fewer lines of code, and that the interactive nature of scripting improves developer productivity.

One empirical study was performed at the University of Karlsruhe in Germany. This study [3] compared 80 different implementations of the same set of requirements by 74 different programmers for several different languages. The study concluded (among other things) that programs written in Tcl, Rexx, and Perl took about half the programmer effort when compared with Java, C and C++. The paper was also published in IEEE computer magazine.

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 or Separation of Concerns

There are a lot of software design paradigms that encourage separation of responsibilities between different parts of the system. F.ex. using a scripting langauge like Tcl/Tk for the GUI interface, and integrated C/C++/Java code for the backend database interface helps define that separation. However, this powerful paradigm is not limited to GUIs. The claim is that the structure of an application, gluing, should be separated from the internal functionality so that the latter can be applied to many different problems. 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..

Scripting recognizes external resources.