While Both AutoHotkey and AutoIt Are Powerful Scripting Languages, AutoHotkey Has the Advantage of Simple, Built-In Support for Hotkeys and Hotstrings—Making It the Choice for People Who “Don’t Want to Learn That Much Programming!”
When planning to automate Windows computer tasks, people are faced with a decision between the AutoHotkey and AutoIt scripting languages. Since both come from the same roots, you might expect that many things you learn in one of the free programs would apply to both. If that were true, then there would be no decision.
* * *
New to AutoHotkey? See “Introduction to AutoHotkey: A Review and Guide for Beginners.”
* * *
You could start with one and switch at anytime when it seemed beneficial. However, that is not the case. While both AutoHotkey and AutoIt do most of the same things, the syntax (language structure) of each is very different.
AutoIt is the father of both programs, but they took divergent paths when an AutoIt contributor wanted to add easier hotkey and hotstring support to the language. The controllers of AutoIt wanted nothing to do with the suggested new features forcing the upstart off in another direction. The name of the new branch, AutoHotkey, better represented the new features in the modified version of the then Open Source AutoIt. At that time the language structure was very similar. Since then AutoIt has almost completely changed the syntax of its latest versions of the Windows automating program. Now, AutoIt primarily uses functions in its scripting code while AutoHotkey continues to use the original command structure. (There has been an effort underway for a number of years to update AutoHotkey — Version 2.0 beta — but it has yet to gain much traction.) Some people complain that the AutoHotkey syntax is archaic, but I have a feeling that it is more a matter of taste, than a real disadvantage.
Others say that AutoIt has many more capabilities than AutoHotkey. That may have been the case at one time, but since the development of AutoHotkey_L (now the primary AutoHotkey download) there is very little possible in AutoIt which is not also available in AutoHotkey. In fact the number one reason people choose AutoHotkey over AutoIt is for the built-in hotkey and hotstring (text expansion) features which are more difficult to implement with AutoIt. Those features are so simple in AutoHotkey that any beginner can have them working in matter of minutes. Even experienced programmers who have switched from AutoHotkey to AutoIt (and love it) continue to use these “hot” techniques in AutoHotkey because there is no easy solution in AutoIt.
Update December 17, 2015: After completing a series of blogs on AutoHotkey Hotstrings, I’ve come to realize that there are many people who might want to use AutoHotkey just for the easy built-in Hotstring structure. If you’re a writer, student, or anyone else who does a lot of word processing, then you’ll be amazed at the AutoCorrect and text expansion/replacement capabilities of AutoHotkey. There are many cool text tricks which can be implemented with Hotstrings. This may apply equally to the built-in Hotkey structures in AutoHotkey.
If you’re an experienced programmer and primarily want to automate Windows programs, then you may prefer AutoIt — many do. However, if you’ve never before taken up the challenge of script writing or mostly need the text expansion, such as AutoCorrect, or hotkeys for running apps and automating, then AutoHotkey may be the ticket for you.
If you’re not sure which you would prefer, then why not try them both? They are both free! You may find that one is more conducive than the other to the way you think. However, if you’re inexperienced, you will find that each has it own unique learning curve.
For a couple of examples of the differences in the code between AutoHotkey and AutoIt, see this “Comparison and Review of the Free Windows Scripting Languages.”