I thought I knew the answer to this one, but once I was asked I realized that I couldn’t quite explain.
What is a scripting language? Wikipedia offers, as always, and extensive explanation – while in the forums developers and alike disagree with the article or at least parts of it.
There is script, and there is script. I’m sure that a little PowerShell script (or big ones, since I’m just getting started with PowerShell my scripts are still small 😉 ) is not quite the same thing as writing up a program in a scripting language. So for me there is a distinction there, shell scripts versus program scripts. I’ve read somewhere that intended use for script languages was to modify the behavior of a program, rather than actually create the whole program in that language. Scripts used to be interpreted in contrast to programs that were compiled, but both these things have changed and therefore there isn’t any more a clear definition of what a scripting language is.
I say ‘used to’ as I started out as a C# developer and I haven’t worked much with scripting languages, so I can only summarize my impression from whatever I have read. But it is very interesting to read those discussions ‘from the outside’- because I see only languages and don’t quite get what the fuss is about 😀
With that I also have a sub-question, what’s up with the language snobbery? I’m under the impression that script languages (which I’m unable to define) are worse or limiting,- and not ‘real’ programming. Might be that I’m just a new kid on the block and have missed out on something here, but aren’t they all just programming languages?- and how great they are will depend quite heavily on the intended usage and the skills and understanding of the author? Wikipedia says that it is a subset of a programming language – is that accurate if it can’t be defined?
Some links (discussions):
What is the main difference between Scripting Languages and Programming Languages?
When is a language considered a scripting language?
What’s the difference between a “script” and an “application”?