Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Why doesn't AHK get the respect it deserves?


  • Please log in to reply
33 replies to this topic
Cruncher1
  • Members
  • 104 posts
  • Last active: Oct 05 2017 05:11 PM
  • Joined: 21 Feb 2012

Do a Google search for things like "easy programming language to learn" or "programming language for GUI creation" and you will NEVER see AHK even mentioned. Yet, it is the easiest way to create a quick GUI for simple office tasks. It is fun to use and easy to learn. I think it would make an awesome first language for everybody. Even my 6 year old can learn enough lines of code to make it a little fun to play with. I am not a 'real' programmer, so help me out here. What is it that AHK can't do that one might do with Java or Python or C++?



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

Scripting languages and programming languages begin to merge, performance is no longer a key point.

Those days, the features of a language are more important. Developer productivity and code maintainability are some of the most important properties.

 

However, AHK lacks some concepts to manage big code projects, for example Type declaration / Type safety. (Which builds together with a good IDE the very base for a productive development environment)

The missing support for multithreading is another issue, probably the biggest limitation of AHK comparing to other languages.

 

The strictness of the bigger languages is what them make so Newbie unfriendly. One could say, that script languages generally follow the moto "assumption before definition" where as the professional languages go for "definition over anything". Which is, after all, sad.

 

Programming/Scripting languages are nothing but tools and it is wise to pick the right one for the right task. At some point, one might even come to the point, where a new specialized tool is needed.



Cruncher1
  • Members
  • 104 posts
  • Last active: Oct 05 2017 05:11 PM
  • Joined: 21 Feb 2012

I see what you mean. For things that I do, multithreading is not an issue. And I have only one thing that I would call a "big code project". Well, probably about 2000+ lines of code anyway. It is a bear to manage at times when I try to correct an error or want to change something. I will look up those concepts (Type declaration, Type safety..) since I am not familiar with them. I have decided to learn Python. It seems to be a good next step from AHK. It is fairly simple, but powerful and has the street-cred that AHK seems to lack. 



WhyTYSir
  • Members
  • 1 posts
  • Last active: Mar 02 2013 10:29 PM
  • Joined: 02 Mar 2013

Scripting languages and programming languages begin to merge, performance is no longer a key point.

 

Aren't you the one who made a C# Truecrypt brute-force tool? How did the speed turn out on that? So then you multi-threaded it and hoped for the best? Ok wink.png

 

That whole 'performance is no longer a key point' has been making its rounds since people found out that a game called Doom (that was created way back when) used hardly any ASM and relied heavily on a then-modern compiler for optimization. Could it have benefited from some hand-sewn ASM? It didn't matter, since computers were so much more powerful back then their predecessors!

 

The facade continues because 90% of the apps written today are heavily UI-based and do nothing more than utter BS. Even heavily resource intensive games that could use tweaking don't get it because of this fallacy. Laziness and costs are the driving factors anymore. It's not that computers are now ALL-POWERFUL, it's that people want to save a dollar and are lazy. So, if they can convince some idiots that C# or VB or AHK is as fast as ASM, C or C++, it's a benefit to them. Where the Sheppard goes, the sheep will follow.

 

Please don't take this as an affront. I just see this lie perpetuated with a lot of programs I use and it irks me. Waiting for programs to open, waiting on pages to load, waiting on games to load the next part and FR in general, waiting on hash programs to finish... it drives me crazy when I know they were written with the writer's convenience in mind and not the user's.



Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006

It's not that computers are now ALL-POWERFUL, it's that people want to save a dollar and are lazy.

 

No, it's that the increase in computing power has reduced the importance of writing high-performance code.  It's no surprise that businesses would want to "save a dollar"; it is in line with their main reason for existing.  For me, the cost of development is measured in time and energy.  Would you say that an aversion to spending time and energy on something that doesn't seem important is laziness?

 

Waiting for programs to open, waiting on pages to load, waiting on games to load the next part and FR in general, waiting on hash programs to finish...

Some of those things aren't even related to processing power, but rather dependent on other more limited resources, such as networks and hard drives.

 

it drives me crazy when I know they were written with the writer's convenience in mind and not the user's.

Consider whether the program would even exist if it weren't for programming languages moving toward ease of development over performance...



TheRoosterCrows
  • Members
  • 2 posts
  • Last active: Mar 03 2013 03:52 AM
  • Joined: 03 Mar 2013

BAD MOTHER****ING GATEWAY,



TheRoosterCrows
  • Members
  • 2 posts
  • Last active: Mar 03 2013 03:52 AM
  • Joined: 03 Mar 2013

I won't type it out again. This forum sucks, AHK_L sucks and, nothing personal, but if you believe what you type, you suck.



guest3456
  • Members
  • 1704 posts
  • Last active: Nov 19 2015 11:58 AM
  • Joined: 10 Mar 2011
Lex is 100% correct.

IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

@WhyTYSir

 

Aren't you the one who made a C# Truecrypt brute-force tool? How did the speed turn out on that? So then you multi-threaded it and hoped for the best? Ok wink.png

Cmon. This example sucks. Bruteforce is probably the only thing where performance is the most important thing. And no, I am not stupid and create a C# Bruteforcer. 

C# is nice for creating the "Business layer" (and you are correct, 90% of all Apps consists only of that) but for the brute force  I use the original TC Source, which after all even contains ASM (AES implementation etc.) 

 

Like I said, use the right tools for the right job. In this case, more than one tool (programming language)  was used.  Shall I use ASM for creating a User interface and then thinking I am that cool nerd? (Btw, I hardly would be able to do this in ASM)

 

Developers (engineers) cost a lot of money. Hardware doesn't. The complexity of big applications are the main reason, why Object-oriented languages have taken the lead.

 

 

Please don't take this as an affront. I just see this lie perpetuated with a lot of programs I use and it irks me. Waiting for programs to open, waiting on pages to load, waiting on games to load the next part and FR in general, waiting on hash programs to finish... it drives me crazy when I know they were written with the writer's convenience in mind and not the user's.

 

Loading time of pages does hardly rely on the language used. Frankly, the software design is the reason why a program loads fast (or slow), not the used language.

And a good software design is harder to accomplish using only low level languages.



Cruncher1
  • Members
  • 104 posts
  • Last active: Oct 05 2017 05:11 PM
  • Joined: 21 Feb 2012

I thought @IsNull offered some good points. So did @Lexikos. @WhyTYSir thinks that we should all be writing code in ASM. My largest AHK project has about 2000 lines of code. It loads and runs very fast. If it was in ASM maybe I'd discover an extra 3 or 4 seconds every day. I agree with:

 

Consider whether the program would even exist if it weren't for programming languages moving toward ease of development over performance...

 

Anyway, getting back to the point of AHK lacking it's deserved place in the pantheon. I was shocked to see that AHK's wikipedia page is marked for deletion for lacking relevance:http://en.wikipedia....wiki/AutoHotkey I put my 2 cents in on the discussion page. Maybe you should too.

 

Sad.



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

Anyway, getting back to the point of AHK lacking it's deserved place in the pantheon. I was shocked to see that AHK's wikipedia page is marked for deletion for lacking relevance:http://en.wikipedia....wiki/AutoHotkey I put my 2 cents in on the discussion page. Maybe you should too.

Now that is interesting. Indeed, the wiki page definitely needs an update, replacing the Logo with the new one and rewriting the content to fit the current situation. Wikipedia is a good platform to advertise AHK and we currently do not use nearly the available potential.

 

It is hilarious how someone can think of removing AHK form the Wiki when I look how much useless unimportant crap is up there and no one questions it. We have a solid sized community here. But let us consider a nice example: Wikipedia holds probably a gazillion of Pornstar descriptions up there. Now go tell me that this "knowledge" is important or notable.

 

This is indeed really sad.



IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

The delete Debate in Wikipedia has been resolved to a "Keep" happy.png



Sidola
  • Members
  • 76 posts
  • Last active: Apr 07 2015 08:34 AM
  • Joined: 20 Jun 2012

I've been meaning to ask this for a while, and this thread seems kinda on-point so I'll sneak it in here, sorry if it's too off-topic.

 

I've been using AHK for a little over a year now, and so far I've written like, 3-4 small programs, one that parses files and shows me information from those files in a GUI, another that reads files and checks for errors, then allows me to correct those errors and save, and another that displays an image which is pulled from another program.

 

And during this year I've kept thinking: I should probably not be doing this in AHK...

 

But every time I think I've come up with something I can't pull off in AHK i manage to find some library that does it. I also love the simplicity off it, even though I assume AHK as a language is pretty basic, I still feel it has helped me understand the overhanging logic applied in other languages.

 

So my question to you real programmers is; Which limitations will I eventually hit with AHK? When should I transition from AHK to a more complex language? And what language would be optimal if I want to continue making quick and useful windows-applications?

 

Small edit: I realize IsNull's first response kind of answers my questions, but I'd still love to hear more examples where AHK simply cannot hold up and you would have to employ a different language.



tank
  • Administrators
  • 4345 posts
  • AutoHotkey Foundation
  • Last active: Oct 13 2016 01:04 AM
  • Joined: 21 Dec 2007

Security will be your biggest limitation However this exists in some form in every language. But i mean security in terms of keeping the code securely out of the eyese of prying users. Its impossible. You cannot safely include connection strings witheven the pretense of them being secure. because of this executing any encryption with it is mostly an act of futility. the encryption may be stron but when the user can easily expose the key and algorythm.... well might as well just leave it un encrypted.

Another big limitation (SOME might suggest ) would be platform dependency on windows


Never lose.
WIN or LEARN.

Cruncher1
  • Members
  • 104 posts
  • Last active: Oct 05 2017 05:11 PM
  • Joined: 21 Feb 2012

So my question to you real programmers is; Which limitations will I eventually hit with AHK? When should I transition from AHK to a more complex language? And what language would be optimal if I want to continue making quick and useful windows-applications?

 

My feeling is that you wont hit any limitations for simple business useful aps. I have made MANY small aps for all kinds of things. I always ask myself for ways AHK could simplify this or that. AHK has been a godsend to my workflow and I only wish it held more favor. I'm learning python for the heck of it. So far, most things I have learned I could have done more simply with AHK. But python is multiplatform and who knows, maybe that will be handy.