This is yet another illustration how ill-posed are the questions like "what is the difference between {0} and {1}". This is the first thing you need to understand. If you did not get it, tell us what's the difference between apple and Apple. :-)
The languages are not classified into programming and scripting, not even close. But you can consider
scripting languages vs.
compiled languages; and they all are programming languages. Please see:
http://en.wikipedia.org/wiki/Compiled_language[
^],
http://en.wikipedia.org/wiki/Scripting_language[
^].
It's important to understand that the
categorization of programming languages does not have a character of classifications. Really existing languages cannot be classified, but they can be categorized. To make it simple: a typical single programming language usually falls into more then one category.
Please see:
http://en.wikipedia.org/wiki/Programming_language[
^].
This is a limited but pretty informative attempt to provide a categorized description of a set of languages:
http://en.wikipedia.org/wiki/List_of_programming_languages_by_category[
^].
Another useful
partial ordering is generational:
http://en.wikipedia.org/wiki/Generational_list_of_programming_languages[
^].
Now, I want to touch the essence of things instead of one or another formal approach. Understanding programming languages in
not about definitions or formal ways of considering the relationships between languages (even though this is useful and important aspect of knowledge).
First thing to understand is that the set, functioning an the history of programming languages is a
cultural phenomenon, sharing a lot with many other phenomena of human culture. In think there is too little understanding of this in both programming and humanitarian society. Programming itself is majorly a humanitarian science, in the same sense as mathematics is, but at much greater degree.
Second thing is: the essence of understanding of languages lies in understanding of
how programming works in principle. For example, to really understand what is a scripting language, you should understand how the
interpreter works, where it is physically located, what part of it complies to what standards and what is proprietary, how is it loaded, hot it gets code and what it does with it, at what moment of time, what is the execution of the script and the result of it, where it goes. The answers to these questions are very different in different situations. The same things goes about compiler, linker, loading, platform, platform OP, OS, and the like — the whole chain. A developer should understand what is abstracted from what, what part knowledge located where and how it is expressed. When you understand essential part of it (probably, starting with some limited technological settings you personally work with at first), then you can understand how pointless your present question is. However, I perfectly understand: you need some point where to start. I wish you good luck in that.
—SA