don’t worry about the words too much. basically these are ways to do things.
programming languages
are used to make a program
scripting
a model or langauge where you’re just writing instructions to mutate an already running program. (ex. OG Javacript)
https://stackoverflow.com/a/32492359
most commonly, these languages are functional
Paradigms/Philsophies
these are ways to model programs to get our shit done on a computer
these 2(declarative vs imperative) are fundamentally different!
https://stackoverflow.com/questions/8682893/can-somebody-please-explain-in-layman-terms-what-a-functional-language-is?noredirect=1&lq=1
IMPORTANT
all declarative/functional code has to be imperative in the end. machine code is imperative.
https://youtu.be/E7Fbf7R3x6I?t=202
declarative
you declare what you want the outcome to be
purely functional
everything is modeled around stateless functions. even base types like numbers are functions. no mutable state, no side effects. ex - haskell
impurely functional
it’s like purely functional that allows mutability and side effects, but tries to avoid. also functions are first class citizens. kinda a grey area between purely FP and imperative, but leaning towards purely FP. ex - js, python
imperative
based on mutable state