Quote:scripting = code that you run. needs an interpreter installed. like you said,That's not a good definition. It's very easy to pack a python script into an executable that will run stand-alone without "extra shit installed" (two lines of config file and one command).
programming = no interpreter needed.
Also, try to run a C++ program without libc.so -- just because it's installed everywhere doesn't mean it's not something extra which is required. Python is installed everywhere too (in the linux world at least).
Of course there's a well-defined difference between interpreted languages and compiled languages, the latter being compiled into real bytecode. Python's duck typing system makes (statically) compiling applications into bytecode totally impractical, tough, that's why it isn't done. How that should not make it a programming language is a mystery to me.
Also, Java is a programming language because it uses a VM? Okay, so if I write a VM which executes python code, it'll become a programming language too, or what? ;p
Oh, or let's try this definition, maybe we can agree on that one:
"Scripting languages are languages that read instructions line-by-line."
That's fine with me.
