== What is a script language on Unix There's a lot of argument in general about what is (merely) a 'scripting language' and what is a fully fledged programming language, deserving to hold its head up high besides grown up languages like C, Java, and Pascal. Unix is a simpler place, because it has a simple and very clear definition of what is a script versus what is a program. To wit: if the kernel can directly _exec()_ you in place as is, you are a program. If not, you are a script (sometimes called an 'interpreter script') and actually get processed by your interpreter, not the kernel. (Note that in-place execution doesn't preclude the use of a helper; almost every program you run on a modern Unix requires the help of the dynamic loader, which is *not* part of each executable.) While technical and somewhat picky, this distinction is important. Among other issues, there are a number of places where a program can be used that a script cannot be. As an immediate corollary, on Unix a language that cannot be used to make programs is a script language, and there are some things that programs written in that language will never be able to do directly. Note that this says nothing about their [[suitability for serious jobs ../python/IndustrialPython]]. (While scripts usually start with '_#! _', some Unixes have ways to run scripts without that; Linux has [[binfmt_misc http://en.wikipedia.org/wiki/Binfmt_misc]], for example.)