(In the continuing series "A friend writes..."), a friend writes:
why are there all these different flavors of scripting languages that in my eyes for the most part do the same thing?
In my infinite wisdom, I answered (more or less) "for actual scripting, it probably doesn't matter, but for programming, different people prefer different ways of doing things, different features, etc.".
And that brought up the eternal question, "What is a scripting language, anyway?" I think it started with shell scripting, which is always called "shell scripting" and never "shell programming" (and please don't bother pointing out facts to the contrary, I will put my fingers in my ears and hum). And it must be called shell "scripting" because you are for the most part scripting Unix commands (I am ignoring Windows), with a bit of logic saying "if this, run this command, pipe the output to that command, check the return value and run this or that command," etc.
And Perl, of course, is an excellent replacement for many of these shell scripts, therefore Perl must be a scripting language. And in that regard, Perl is a scripting language. But the unwashed masses don't understand that Perl is not just a scripting language.
Since this friend is in QA/Testing of Web apps, most of his programs probably lean more toward "script" than "program" also...fill in this form...then click on this button...then follow that link. He will probably never use map or grep, let alone anonymous recursive functions with closures (not counting things used in included libraries).
s/Perl/your favorite "scripting" language/g, wash, rinse, and repeat :-)