writing extensions to the browser itself, and several standard embedded languages for controlling the browser, including JavaScript (a dialect of ECMAScript) or XUL. Types Scripting languages can be categorized into several different types, with a considerable degree of overlap among the types. Glue languages Scripting is often contrasted with system programming, as in Ousterhout's dichotomy or "programming in the large and programming in the small". In this view, scripting is glue code, connecting software components, and a language specialized for this purpose is a glue language. Pipelines and shell scripting are archetypal examples of glue languages, and Perl was initially developed to fill this same role. Web development can be considered a use of glue languages, interfacing between a database and web server. But if a substantial amount of logic is written in script, it is better characterized as simply another software component, not "glue". Glue languages are especially useful for writing and maintaining: custom commands for a command shell; smaller programs than those that are better implemented in a compiled language; "wrapper" programs for executables, like a batch file that moves or manipulates files and does other things with the operating system before or after running an application like a word processor, spreadsheet, data base, assembler, compiler, etc.; scripts that may change; Rapid application development of a solution eventually implemented in another, usually compiled, language. Glue language examples: AppleScript ColdFusion DCL Embeddable Common Lisp ecl Erlang EXEC EXEC2 JCL CoffeeScript Julia JScript and JavaScript Lua m4 Perl (5 and Raku) PHP PowerShell Pure Python Rebol Red Rexx NetRexx Ruby Scheme Tcl Unix Shell scripts (ksh, csh, bash, sh and others) VBScript Work Flow Language XSLT Macro languages exposed to operating system or application components can serve as glue languages. These include Visual Basic for Applications, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic, and WinWrap Basic. Other tools like AWK can also be considered glue languages, as can any language implemented by a Windows Script Host engine (VBScript, JScript and VBA by default in Windows and third-party engines including implementations of Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi, and C). A majority of applications can access and use operating system components via the object models or its own functions. Other devices like programmable calculators may also have glue languages; the operating systems of PDAs such as Windows CE may have available native or third-party macro tools that