Just a blog post I made about my experience learning some web design principles as a full-stack web dev and building a design system for a side project.
You call it a script when you want to highlight the interaction with the environment (the OS for bash, the DOM/browser for JS), you call it a program when you want to highlight its uses in the applicative domain (node runs JS, imagemagik converts images).
Every program is a script for its evironment and every script is a program for its desired effect.