Purpose: Discuss what determines whether a language is a scripting language as opposed to some other sort of programming language. ---- Many people say that [AppleScript], [Lua], [Perl], [Python], [Rexx], [Rebol], [Ruby], shell languages (like sh, csh, ksh, bash, zsh, etc.), and [Tcl] are all scripting languages. What criteria can one use to determine whether a language is a scripting language or not? 1. Does the creator of the language call it a scripting language? 1. Does the language make it easy to interact with other programs, allowing one to trivially pass input and gather output for further processing? 1. Does the language require a ''separate'' compilation step? 1. Does the language have variables and flow control constructs? ''The italicised word added by me, or you exclude Perl5 and Tcl8 pointlessly - DKF'' ---- Discussion: Are the above valid criteria? If the creator of a language calls it a scripting language, does that make it so? If the creator denies that a language is a scripting language, does that make it so? The first language I learned that passes the "interact" criteria was IBM MVS JCL. Is that a scripting language? I know nothing of Lua and Rexx, so I don't know if they really fit in here or not. Other languages I have lesser familarity with, but which might fit the above criteria, are JavaScript, VisualBasic, VBScript, SmallTalk. Why would you want to use a scripting language, anyway? Take a look at [Why Scripting] ---- AK: An essay about this topic I wrote some time ago [http://www.oche.de/~akupries/ics_lang.html] ---- [Phil Ehrens] wrote: > Didn't Milton write (Paradise Regained?): > "Perl's lots of funne, but Tcl's where the work is donne"? ---- RS: I'd replace the overly generic "Shell" above with "sh, csh, [ksh], bash, .." - just those "Unix JCLs -, and add "awk". Not sure about "sed", though... ---- [KBK]: A test that's quite accurate for whether a language is a "scripting" language: If I have a character string that contains code written in the language, can I evaluate it readily within a running program? By this test, the LISP-like languages are also scripting languages, but many Basic implementations are not. It's not just a question of "does the language support the [eval] feature." Instead, the presence or absence of [eval] is a window into what the language designer considered important. [LV] does awk have an eval type operation? [RS]: Not from what I know; hence it's more on the Fortran/C side of code and (string) data strictly separated. ---- [JMN] Apparently an ex-TCLer wrote [BeanShell] which has been described as "a Java source interpreter with object scripting features". The author of BeanShell compares the relationship of Java and BeanShell to the relationship of C and Tcl/Tk. Part of the beanshell manual has some information relavent to this page: http://www.beanshell.org/manual/intro.html#Scripting_vs._Application_Languages ---- [Category Concept] | [Category Language]