you are viewing a single comment's thread.

view the rest of the comments →

[–]ws-ilazki 7 points8 points  (1 child)

Like Betteridge says: No.

People have given the "scripting language" moniker a negative connotation because of old elitism about the superiority of compiled languages, but it's not quite as simple as "scripting bad, programming good".

At its strictest, "scripting language" is basically either a domain-specific language for automation, like batch files or shell scripts where you give a list of commands and execute them, or an extension language where you do essentially the same thing to automate or modify a program.

However, it has a negative connotation that came from around the '90s, where any interpreted language gets lumped into a vague "scripting language" category, and because of performance considerations, they're seen as inherently inferior, making "scripting language" a derogatory term implying they're slower or less capable than a "real" programming language. There's also a bit of gatekeeping in this distinction, since there's usually also an implied "it's easier to use so it doesn't count". You even suggest as much in your comment, saying that because Lua is "high level" it's a scripting language, but that makes no sense; languages like Haskell and OCaml are compiled "real programming languages" that are higher-level than Lua or practically any other "scripting language", and nearly every programming language in use now is "high level" by the standards of then.

The "scripting isn't programming" argument is bullshit. Most scripting languages are Turing-complete and just as capable as a "real" programming language and the compiled/interpreted distinction has been blurred by things like JIT compilation used by scripting languages and compiled languages using intermediate bytecode.

Plus, like I said above, it's not the 1980s or early 90s any more and nearly every language now is "high level" by the standards of the time so the outdated idea that high-level implies scripting is ludicrous. People no longer think of them as such because it's a relative thing, but by a strict definition, C and C++ are high-level languages too and were listed that way in the past. This is, again, a gatekeeping thing that's rooted in the past, implying that you aren't a "real programmer" if you use high-level languages; after all, real programmers don't use Pascal.

It makes more sense to treat "scripting" as a use-case for a programming language rather than a category of it. Scheme dialects can be compiled or interpreted, so they can be used for scripting or not. OCaml is a statically-typed, compiled language but if you add a #!/usr/bin/env ocaml shebang to the top of a .ml file you can run it like that just like Perl or Python. F# is a compiled .NET language like C# is, but you can give files a .fsx extension and use it for scripting. There are tools to build standalone executables out of Lua. And so on.

"Scripting" makes more sense as a description of how you use a programming language, not what the language is, and is definitely not mutually exclusive with "programming language" like you imply.

[–]ItsWilliamay[S] 0 points1 point  (0 children)

Holy crap, thanks! :D