@alina Far as I can tell, "scripting languages" just aren't a thing that exists, with the only possible exception being when the term is used to talk about the process of adding customized scripts to an existing application. Everything else is just a programming language, regardless of how it works under the hood. Dynamic or static, strongly or weakly typed, interpreted or JIT-compiled or AOT-compiled, it doesn't matter.
It's mostly used as a derogatory term in practice - either to bash a language someone personally doesn't like, or more often to insult programmers who don't meet some arbitrary standard of 'real programmer' (and that standard is usually toxic macho stuff).
@joepie91 @alina Unlinke compilers, many interpreters can also be used interactively, executing a command as soon as you hit the enter key. This means you can use those interpreters like a shell, like many old 8-bit home computers did with BASIC. Of course interpreters run a lot slower with much more overhead than a compiled binary, but many interpreted languages can make use of binary libraries for all kinds of fast and efficient functions.
Also, debugging is a much different experience if you're running your interpreter in interactive mode and then run your code from there. Once it terminates, whether it just ends regularly, gets stopped by the interpreter with an error, or you end it with ^C, you can access all the variables and functions from the interactive interpreter.
I know a lot of scientists who do most of their work in Python, which has become some sort of BASIC for scientists. Their code may suck and be inefficient, but all the heavy lifting is done by binary functions.
@LordCaramac @alina I'm not sure what exactly that's in response to, but it doesn't seem very relevant nor particularly correct? The strict dividing line you're sketching here hasn't existed for decades.
@LordCaramac @alina Like, JS is commonly seen as 'interpreted' and behaves like it from a developer perspective, but in practice it's JIT-compiled.
Common Lisp is (usually AOT) compiled but provides vastly more powerful introspection and debugging than just about anything else around, interpreted systems (!= languages) included.
Even Python can be run in a variety of modes; there are forms of Python which can be JIT-compiled, or even AOT-compiled.
@alina (Occasionally people try to define 'scripting language' but that definition never ends up being actually useful in any meaningful way, and usually makes incorrect assumptions about certain language properties 'belonging together')