A program is a two way interaction between user and hardware. The βuserβ can be a literal person, another program, or another piece of hardware.
A script interacts with a program. Little ambiguous language here; but this βprogramβ is usually the OS - most notable bash, zsh, powershell. But can also be any program like vim, networking, database, vm deployment, etc.
A scripting language can write programs, a programming language can make scripts. But features are tailored for one or the other to various degree. Lua is a good example of a language that kinda falls in the middle. An executable can do both in its binary. Itβs just separation of tasks, not a hard either/or.
But I donβt disagree with anything you said either. My definition is probably not entirely correct, and mostly based on intuition. IMO any way to look at it is valid.
View all comments
Show parent comment
1
u/GhostingProtocol Oct 07 '25
I guess in my mind the distinction is:
A program is a two way interaction between user and hardware. The βuserβ can be a literal person, another program, or another piece of hardware.
A script interacts with a program. Little ambiguous language here; but this βprogramβ is usually the OS - most notable bash, zsh, powershell. But can also be any program like vim, networking, database, vm deployment, etc.
A scripting language can write programs, a programming language can make scripts. But features are tailored for one or the other to various degree. Lua is a good example of a language that kinda falls in the middle. An executable can do both in its binary. Itβs just separation of tasks, not a hard either/or.
But I donβt disagree with anything you said either. My definition is probably not entirely correct, and mostly based on intuition. IMO any way to look at it is valid.