Tuesday, April 28, 2009

What's a Scripting Language?

You'll hear a lot of confusion in people's voices around this question. In part it's because they'll hear a computer language dismissed as irrelevant, in a kind of snobbish tone, with the words "oh, that's just a scripting language". What the hell does that even mean?

Well, let's try to answer that. There's a kind of janitorial work that's rather rarefied and difficult, and not all that sexy, in terms of people lining up around the block to be sysops or sysadmins, and often it's a "rotate through" position like bar tending (which I've done, though without mixing drinks).

Being a good system administrator takes real skill and my mind darts back to Free Geek and that barefoot guy who liked Python because of its ability to work with files in a traditional Unix-style filesystem, as a workhorse for clawing through logs, setting up user accounts, cleaning out detritus -- whatever needed doing. Perl grew up in this same forest, a close associate of the several shells, Bourne's becoming the standard, awk, sed and all of those.

Some of the public's ignorance stems from not tackling batch file programming in DOS, or even if you did, that was nothing like the state of the art POSIX command line they were getting in college. I've not used VMS, did use CMS on an IBM 360/370, understood about the virtual machine concept, not in terms of a code running engine (ala CLR, bytecode VMs), but in terms of each user having the mental image of being in control of a whole computer, with mountable devices, tapes (where tarballs come from). Computers were all about tapes in the old days, with Turing Machines defined as having infinite tape (how blissful).

Anyway, I think it's the janitorial responsibilities that stamped Perl and Python as "working class" and therefore you get that snobbish tone from an inner sanctum, behind higher walls within the Ivory Tower, where you get these more "theoretical" languages (supposedly), tended to by higher priests with higher degrees of inner circleness, or at least that was the marketing of the day (dial back a ways, you'll find it's all there).

Given this is more about ethnicity than engineering, the category "scripting language" has not withstood the test of time very well. The Perl community has advocated embracing the term, and I think that's worth doing. But the lay public still hasn't understood what it means, so embrace it all you like it's still a big mystery. Now with Python embracing it, things make more sense, as Pythons do that (embrace things), as a species. So even if the computer science gets lost, at least there's something concrete to think about here.