http://www.perlmonks.org?node_id=566296


in reply to Let's face it, Perl *is* a scripting language

My take on whether Perl (or any other language) is a scripting language is largely derived from a Larry Wall quote, actually (though I reserve the right to change my mind tomorrow). He said "A script is what you give the actors. A program is what you give the audience."

This says something somewhat profound about the difference, though his meaning may not have been the same as what I'm seeing from my own perspective. Scripts, it seems to me, are for programmers, while programs are for users. This means that software written primarily for the benefit of programmers is more a "script", and software written primarily for the benefit of an end user is more a "program". Persistent compiled executable binaries are a more program-oriented feature, while executed plaintext files are a more script-oriented feature. Large, comprehensive GUI applications that include at least some interpretation of a kitchen sink are more program-oriented, while small, "does one job and does it well" utilities that can be chained together to produce more complex behavior are more script-oriented. A set of utilities that are well chained together in that manner might be a program, however. Something easily read, the entire concept of which can be held in one's head at once, is more script-like, while something whose design "under the hood" can only be understood and held in one's head in chunks is more program-like. Et cetera.

Frankly, I'm inclined more toward things that might be called "scripts" according to the above checklist, anyway. I like being able to see source code. I like functionality that can be executed separately from other functionality as atomic little utilities, as opposed to massive captive interface programs that must be started almost as a virtual machine OS within your OS to be able to access a single feature such as a word count button. I prefer glue code over tight coupling. I like software that can be run without starting a GUI. That doesn't suit the common proprietary closed-source software development and marketing model, though, because it's difficult to sell simple, elegant software as unique products — it's too easy to replicate the individual utilities' behaviors, at least partially. As long as corporations continue to want to sell monolithic, "feature rich" applications and leverage legislation to prevent copying and sharing, rather than generating revenue for things that actually are singular, unique, and difficult to reproduce cheaply (in time as well as money) like comprehensive support and customization of complex systems, we'll have to deal with the question of "scripting" vs. "programming", with "programming" being the automatic winner in the minds of many. C'est la vie.

print substr("Just another Perl hacker", 0, -2);
- apotheon
CopyWrite Chad Perrin