Please forgive me for not reading through all 224 posts in this thread, but I just wanted to add a comment about the documentation. I apologize if someone has already mentioned it, but then again, another voice to the opinion never hurts.
I will preface this mentioning that my programming/coding/scripting knowledge is very, VERY cursory. I started playing around with AHK for one reason and one reason only: to create and modify hotkeys or keyboard shortcuts in some programs and/or for Windows. I realize that the functionality of AHK goes way beyond that, which is great. But for me, and I'm sure for others, we're just trying to improve our workflow on our systems.
The documentation is very helpful, although I found some parts very difficult to comprehend. So this I mention as a general remark for documentation creation: if there is some prerequisite knowledge expected, please give either explanation or links to explanations (like YouTube videos or lynda.com tutorials) for gathering the fundamental knowledge for coding with AHK. The very cursory understanding I have of HTML helps me to grasp some aspects (like "escaping out", the concepts of variables, etc.), but other things I can't seem to get my head around, like hooks.
I feel like much of the documentation departs from the focus on hotkeys (etc.), and becomes rather a general scripting language guide. I realize, of course, the necessity of explaining the language. But at the same time, for me, especially as a non‑programmer, I no longer see the relevance of certain aspects of the language to the hotkey programming. For example, the section in the tutorial and in the documentation regarding objects and arrays (and also the sections on variables) give very general examples, such as an array describing the properties of a banana. But none of the examples show how, why, and when to use them in defining a hotkey.
Let me give a very brief (I hope) practical example of what I'm working on presently. I'm using a program that has some keyboard shortcuts, but I want other functions to also have shortcuts. So I am using AHK to define them. Some functions are accessible using key strokes to pan through the menu bar; other functions are accessible only through the context menu; still others are (for some reason) only accessible through clicking the button in a toolbar. I'm trying to create at least 78 hotkeys. I'm sure there's a way to streamline the script using variables and objects, but I don't understand how to make them all work together. My script will certainly be long, but without an understanding of how to make these various parts work together in a hotkey script, I can't do much better than that.
So, my two suggestions for documentation improvement: 1) either clarify expected foreknowledge/experience level in general programming (and provide links to resources, like lynda.com or other tutorials, to help those who don't have that knowledge to get it), or be more thorough in explaining otherwise basic programming concepts in the documentation itself, so users only need a "one stop shop" to get all the information necessary for programming AHK scripts; and 2) make sure the documentation, including the tutorial, ties back around to the generation of hotkeys and hotstrings, so users can clearly see how these various scripting elements work together to compile useful codes specifically for hotkeys (etc.).
Thank you for your time and consideration. I appreciate your response.