To summarize, if you have a separate compilation step visible to developers, you have programs. If not, you have scripts. An exception is that if you have a separate, partial compilation step at runtime and not visible to users, then you may have programs. The presence of one implementation that performs additional compilationy thingies at runtime instantly upgrades all scripts to programs, while the presence of an interpreter for a language in which people normally write programs, not scripts, does not downgrade programs to scripts. Program-ness is sticky.
I hope this is now clear.
Ironically some JavaScript implementations have JITs, so the colloquial name of the language should change from JavaScript to JavaProgram.
Script bad, four-legs good.
Author | chromatic |
Work | "Program vs. Script" |