language originally for use with Microsoft Windows but later also available for macOS and Linux. Python, a general-purpose scripting language with simple syntax, particularly suited to text processing and also used as an extension language. Rexx, a scripting language in IBM's VM/SP R3. NetRexx and Object Rexx are based on REXX. Used on several platforms. Also used as extension languages for applications. sed, a text-processing language available in most Unix-like operating systems, which has been ported to other operating systems. Tcl, a scripting language for Unix-like environments, popular in the 1990s. Can be used in conjunction with Tk to develop GUI applications. Visual Basic for Applications (VBA), an extension language developed specifically for Microsoft Office applications, and implemented at least partially in many non-Microsoft applications. Some game systems have been extensively extended in functionality by scripting extensions using custom languages, notably the Second Life virtual world (using Linden Scripting Language) and the Trainz franchise of Railroad simulators (using TrainzScript). In some games, such as Wesnoth, users may play custom variants of the game defined by user-contributed scripts. Characteristics Typical scripting languages are intended to be very fast to learn and write in, either as short source code files or interactively in a read–eval–print loop (REPL, language shell). This generally implies relatively simple syntax and semantics; typically a "script" (code written in the scripting language) is executed from start to finish, as a "script", with no explicit entry point. For example, it is uncommon to characterise Java as a scripting language because of its lengthy syntax and rules about which classes exist in which files, and it is not directly possible to execute Java interactively, because source files can only contain definitions that must be invoked externally by a host application or application launcher. public class HelloWorld { public void printHelloWorld() { System.out.println("Hello World"); } } This piece of code intended to print "Hello World" does nothing as main() is not declared in HelloWorld class, although the one below would be useful. public class HelloWorld { public void printHelloWorld() { System.out.println("Hello World"); } public static void main(String[] args) { printHelloWorld(); } } In the example above, main is defined and so this can be invoked by the launcher, although this still cannot be executed interactively. In contrast, Python allows the definition of some functions in a single file, or to avoid functions altogether and use imperative programming style, or even use