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