Outliner Software Forum RSS Feed Forum Posts Feed

Subscribe by Email

CRIMP Defined

 

Tip Jar

Autohotkey vs. AutoIt

View this topic | Back to topic list

Posted by Slartibartfarst
Sep 1, 2012 at 06:51 PM

 

@Fredy:
Thanks for your interesting comparison between Autohotkey vs. AutoIt.
Before discussing it further and in order to try to make some objective and useful comment, I would prefer to see some clarity in the definition of terms.

In your discussion, you frequently refer to AHK/IT in terms of being a “programming language”.
I don’t know about AI, but AHK would appear to not fit most/any definition of a programming language. For example, the Wikipedia entry for AHK says:
http://en.wikipedia.org/wiki/AutoHotkey
__________________________
“AutoHotkey is a free, open-source macro-creation and automation software utility that allows users to automate repetitive tasks. Any application user interface can be modified by AutoHotkey (for example, overriding the default Windows control key commands with their Emacs equivalents).[2] It is driven by a custom scripting language that is aimed specifically at providing keyboard shortcuts or hotkeys.”

Wikipedia also says about AHK:
“AutoHotkey scripts can be used to launch programs, open documents, send keystrokes and send mouse clicks and movements.[3] AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops and manipulate windows, files, and folders. These commands can be triggered by a hotkey, such as a script that would open an internet browser whenever the user presses Ctrl+Alt+i on the keyboard. Keyboard keys can also be remapped or disabled, such that pressing the letter q, for example, might result in the computer receiving a letter r, or nothing at all.[4] AutoHotkey also allows for ‘hotstrings’ that will automatically replace certain text as it is typed; the most typical use for hotstrings is expanding abbreviations, such as assigning the string “btw” to send the text “by the way” when typed, or the text “%o” to send “percentage of”.[5]
__________________________

Wikipedia also has this definition for a programming language:
https://en.wikipedia.org/wiki/Programming_language#Definitions
__________________________
“A programming language is a notation for writing programs, which are specifications of a computation or algorithm.[1] Some, but not all, authors restrict the term “programming language” to those languages that can express all possible algorithms.[1][2] Traits often considered important for what constitutes a programming language include:
  * Function and target:...
  * Abstractions:...
  * Expressive power:...”
...

“All programming languages have some primitive building blocks for the description of data and the processes or transformations applied to them (like the addition of two numbers or the selection of an item from a collection). These primitives are defined by syntactic and semantic rules which describe their structure and meaning respectively.”
____________________________________________

I would thus tend to distinguish a scripting language from a programming language.
I know Wikipedia may be a dubious authority to quote, as it may contain much that may be wrong or apocryphal (!).

It would be interesting to see a formalised set of requirements for a scripting language, but I am unaware of any such - I haven’t come across one in any event.
If we had a set of requirements, then we could use it as a basis for comparison and rapidly tick off whether script language A or B met the requirements, and to what extent.