Modern scripting languages were first popularized by simple Unix scripting languages such as "sh." The sh language, short for shell, was one of the first Unix scripting languages. Unlike compiled languages that are transformed into machine code executables, script files are executed directly by a script interpreter. A file containing a sh language script, for instance, can be directly executed with the sh command. There are a number of Unix scripting languages based loosely on sh. The "csh" scripting language, for instance, adds features to more closely resemble the C programming language syntax. The "ksh" and "tcsh" scripts are yet more advanced scripting languages based on sh.
Along with general purpose scripting languages, early Unix programmers developed a number of other special purpose scripting languages that are still in widespread use today. For instance, the "awk" language was designed specifically for string handling and manipulation functions.
Over the years , scripting languages continued to grow in complexity and competed in functionality with traditional programming languages. Tcl, for example, is a modern scripting language that is often used for visual programming. Perl, another scripting language, is used extensively in web programming.
The main benefit of scripting languages is the flexibility and rapid development they afford to programmers. It can often be simpler and quicker to program a small task in a scripting language than in a compiled programming language. Most scripting languages are intended for implementing functionality that resides in a single file. This limits their practical use to programs of several hundred statements or less. Another disadvantage of scripts is their often cryptic syntax. The same syntax that makes it easy to accomplish so much in a few dozen lines of code makes for difficult reading. Finally, because most scripts are executed in an interpretative fashion, there are few opportunities for run time optimization. Compute intensive code almost always executes faster as a compiled program than as the equivalent script.