What is a script? What is a program?
I don’t think there is any computer science concept that distinguishes the terms scripts, templates, and programs in any real sense.
Like Chris, I too find it difficult to put place some of my coding projects into a category.
I write a lot of code to run on the command line. Some of my projects I consider a script because I write them to be run once and never run again. A recent example was crunching through 14,000 images at work. Some needed to be deleted, others renamed, etc. I wrote a script in about an hour to do a task that would have taken a human a few days to do. That code may never be used again (except when I copy and paste things I need from it for a future project).
Bulldozer is a very small command line script that I use a few times per month. It accepts a few arguments but other than that it is very simple. It isn’t throwaway. It is reusable. But I still consider it a script. Stripe Transfer is a much more complex project. I use the code all the time and I am constantly improving it. No one sees the code but me, but it accepts arguments, has options and settings, and is meant to be reusable. Is this a program? An app? A utility?
Chris lumps templates into the mix. I don’t think I would. A template is exactly that and most of the time it is very clear what is and isn’t a template. The same can be said for a plugin or add-on. That code cannot run on its own and needs to be part of a larger project.
Chris’ takeaway rests just about where I would too. Be sure to read his post.