A scripting language is a programming language that employs a high-level construct to interpret and execute one command at a time. In general, scripting languages are easier to learn and faster to code in than more structured and compiled languages such as C and C++.
Compiled languages are converted permanently into executable files before they are run. In contrast, scripting languages are typically converted into machine code on the fly during runtime by a program called an interpreter. Although this approach can cause performance problems because the instructions are not handled solely by the processor, it does make it easier for scripts to work with programs written in other languages.
Over time, as just-in-time compilation has improved performance and intepreted programming languages like Perl, Python and Ruby have evolved, the lines have begun to blur about what should, and what should not, be classified as a scripting language. Today, it is generally agreed that the classification should not be determined by the language itself, but rather by how the language is being used.
When a scripting language is used to connect disparate system components, it may also be referred to as a glue language. In addition to being interpreted, such scripting languages are also typeless, allowing a variable to hold any type of data without having to explicitly declare its type. Usually, glue languages also provide native support for specific aggregate data types such as arrays and automate garbage collection to reclaim abandoned storage and prevent memory leaks.
Scripting languages defined elsewhere on WhatIs.com include:
bash - the free version of the Bourne shell distributed with Linux and GNU operating systems.
Bourne shell - the original UNIX shell. Also known by its program name, sh.
C shell - invented for programmers who prefer a syntax similar to that of the C programming language.
Korn shell - incorporatins all the features of C shell (csh) and Tab C-shell (tcsh) with the script language features similar to that of the Bourne shell
LotusScript - can be coded within the Lotus Domino Designer development environment.
PHP - a script language and interpreter that is freely available and used primarily on Linux Web servers.
PowerShell - designed to automate system tasks, such as batch processing, and create systems management tools for commonly implemented processes; includes more than 130 standard command line tools for functions that formerly required users to create scripts in VB, VBScript or C#.
Python - often used to provide scripting capability to existing applications; is simple enough for user-level scripting with a minimum of training.
Ruby - according to proponents, Ruby's simple syntax (partially inspired by Ada and Eiffel), makes it readable by anyone who is familiar with any modern programming language.