views:

133

answers:

4

Is AutoIt a programming language? What's the difference between a programming language and a scripting language.

AutoIt seems quite complex. There are a lot of things you can do in it. The code can even be compiled into an .exe file. So I don't understand why it wouldn't be considered a programming language.

+3  A: 

A pure scripting language can't exist on its own - it makes something else do something (like JavaScript manipulates web pages).

Some languages, like Python or Ruby or Perl, are called scripting languages because they have a lot in common with other scripting languages, but they can be used standalone.

AutoIt sounds like a normal scripting language:

AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.

It sounds like its main purpose is for manipulating Windows GUI elements, so this makes it a scripting language. Would it make any sense on a web server, for example?

The important thing to note though, as Greg mentions, is that the term "Scripting language" is very poorly defined, doesn't really mean anything, and shouldn't be worried about.

Skilldrick
AutoIt can be used standalone. You can compile the scripts into standalone .exes that do not require the framework to be installed on the host pc. AutoIt can be used to write GUI interfaces, application installers, watchdog apps, web servers... It goes way beyond it's original design spec of being a GUI automation tool.
JohnForDummies
I don't mean standalone as in working without its framework - I mean standalone as in working in not needing an environment to work in (such as Windows GUI elements). But if you say it could be used to write a web server, then obviously it doesn't need GUI elements to work on in order to make sense, so that satisfies my definition of standalone!
Skilldrick
+1  A: 

In many cases, scripting languages are programming languages. It certainly looks like AutoIt is.

The 'scripting' seems to be applied in this case because it is being used to automate GUI interaction, a common usage of the term.

BioBuckyBall
+3  A: 

A scripting language is a language that is not compiled, but interpreted real time.

All scripting languages are programming languages, but not all programming languages are scripting languages.

Matthew Vines
So LISP is a scripting language?
Skilldrick
I'm not well versed in LISP, but a quick search leads me to believe that it is a scripting language in some implementations, and a compiled language in others.
Matthew Vines
I'm also getting the sense that this definition of scripting language is not necessarily the standard. Though I do recall from my earlier CS courses back in the day many a test question about scripted vs compiled languages that followed this definition.
Matthew Vines
Sorry, looks like we're talking at cross-purposes. I would say that scripting languages and interpreted languages are two types of computer language, and that their venn diagrams overlap heavily, but they're not synonyms. I was citing LISP as an example of a language that is generally interpreted but not generally thought of as a scripting language.
Skilldrick
A: 

I don't know anything about AutoIt, but to address your question about a programming language vs. a scripting language - Larry Wall put it very well in one of his State of the Onion addresses:

Suppose you went back to Ada Lovelace and asked her the difference between a script and a program. She'd probably look at you funny, then say something like: Well, a script is what you give the actors, but a program is what you give the audience. That Ada was one sharp lady...

If you're interested in reading more, http://www.perl.com/pub/a/2007/12/06/soto-11.html

Matthew J Morrison