Sign in to follow this  
Followers 0
jmc

How easy is AutoIt to learn for non-programmers?

16 posts in this topic

I am aware this is subjective, but for those of you that were non-programmer previously; how easy was it to learn AutoIt? Would you say it’s one of the easier script/language to pick up?

For beginner programmers, would you say AutoIt is comparable to learning Python and Ruby, etc.?

Goal: trying to decide if a typical technical person that's a non-programmer (not myself), can feasibly handle programming this...

Thanks

Share this post


Link to post
Share on other sites



AutoIt is easy for most people to pick up. If you've got experience in other languages, you should have no trouble here.

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

AutoIt is easy for most people to pick up. If you've got experience in other languages, you should have no trouble here.

Depends on what you need it for. Its probably the best app, balancing functionality with ease of use, for windows applications and "simple" programs. But if you are looking for cross platform and embedded web application, look elsewhere.

If you are into IT administration, it adds flexibility to your old Visual Basic scripts. For me, I got into it when I took our old VB scripts, put it into a polished GUI, and become the hero of the day.

Edited by DicatoroftheUSA

Share this post


Link to post
Share on other sites

AutoIT is the easiest!

I think that i know a lot of things in AutoIT, but i am still noob in C++ ^^

AutoIT have very good help file and very good forum support ( :blink: )

I started with some MsgBoxes, Loops, programs like "team generator", some macros in windowed aplications, fun with pixels

now i am getting experience in Memory funcions (very usefull!)

But if you wanna change language from AutoIT to other (nevermind what language will be second), then it will be hard

So many C++ programmers said about AutoIT like an no-serious language, but in fact it have big possibilities


This world is crazy

Share this post


Link to post
Share on other sites

AutoIT is the easiest!

I think that i know a lot of things in AutoIT, but i am still noob in C++ ^^

AutoIT have very good help file and very good forum support ( :blink: )

I started with some MsgBoxes, Loops, programs like "team generator", some macros in windowed aplications, fun with pixels

now i am getting experience in Memory funcions (very usefull!)

But if you wanna change language from AutoIT to other (nevermind what language will be second), then it will be hard

So many C++ programmers said about AutoIT like an no-serious language, but in fact it have big possibilities

I don't know, I think it would help get into other languages. As it teaches the basics of structured programming and variables, which are probably the most important things, also it lets you get some pretty robust projects under your wing, allowing you to have better targets. What makes programming hard is not having objectives that are feasible and at the same time useful, and auto it, lets you set the bar high enough to make stuff that is useful from the beginning.

Share this post


Link to post
Share on other sites

I know maybe i will use a bad example of other lang code (Diablo II MapHack), but i am sure that this is very good source code to show big difference between AutoIT programming and C lang

DLL Code

#ifdef _DEFINE_PTRS
#define FUNCPTR(dll, name, callingret, args, address) \
        __declspec(naked) callingret dll##_##name##args \
        { \
                static DWORD f##dll##_##name = NULL; \
                if(f##dll##_##name == NULL) \
                { \
                __asm { pushad } \
                f##dll##_##name = Patch::GetDllOffset(dll, address); \
                __asm { popad } \
                } \
                __asm jmp [f##dll##_##name] \
        }

and we have sth like

FUNCPTR(D2COMMON, AddRoomData, void __stdcall, (Act * ptAct, int LevelId, int Xpos, int Ypos, Room1 * pRoom), 0x3CCA0)
FUNCPTR(D2COMMON, GetLayer, AutomapLayer2* __fastcall, (DWORD dwLevelNo), 0x6CB20)//
FUNCPTR(D2COMMON, GetLevel, Level * __fastcall, (ActMisc *pMisc, DWORD dwLevelNo), 0x2D9B0)//
FUNCPTR(D2COMMON, GetObjectTxt, ObjectTxt * __stdcall, (DWORD objno), 0x3E980)//
FUNCPTR(D2COMMON, InitLevel, void __stdcall, (Level *pLevel), 0x2E360)//
FUNCPTR(D2COMMON, LoadAct, Act* __stdcall, (DWORD ActNumber, DWORD MapId, DWORD Unk, DWORD Unk_2, DWORD Unk_3, DWORD Unk_4, DWORD TownLevelId, DWORD Func_1, DWORD Func_2), 0x3CB30)
FUNCPTR(D2COMMON, RemoveRoomData, void __stdcall, (Act* ptAct, int LevelId, int Xpos, int Ypos, Room1* pRoom), 0x3CBE0)
FUNCPTR(D2COMMON, UnloadAct, unsigned __stdcall, (Act* pAct), -10868)

FUNCPTR(D2CLIENT, AddAutomapCell, void __fastcall, (AutomapCell *aCell, AutomapCell **node), 0x61320)//
FUNCPTR(D2CLIENT, GetPlayerUnit, UnitAny* __stdcall, (void), 0xA4D60)//
FUNCPTR(D2CLIENT, InitAutomapLayer_I, AutomapLayer* __fastcall, (DWORD nLayerNo), 0x62710)//
FUNCPTR(D2CLIENT, NewAutomapCell, AutomapCell * __fastcall, (), 0x5F6B0)//
FUNCPTR(D2CLIENT, PrintGameString, void __stdcall, (wchar_t *wMessage, int nColor), 0x7D850)//
FUNCPTR(D2CLIENT, RevealAutomapRoom, void __stdcall, (Room1 *pRoom1, DWORD dwClipFlag, AutomapLayer *aLayer), 0x62580)

More examples

http://www.assembla.com/code/mmap/subversion/nodes/trunk/mMap?rev=5

So, as I said, I am using AutoIT very long, and this code abouve is black magic for me

I don't want creating programs like this, I need to understand how it works, how it was created

I don't playing this games (but I like it), I have this games for learning programming

If you wanna creating a low programs, then AutoIT is enought for this :blink:, if you wanna creating programs to edit / finding / reading process memory - NO!

So you must learning AutoIT, then more complicated languages (Python), not too fast.

AutoIT is full of ready functions to use


This world is crazy

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

It's easy to learn to create simple scripts in AutoIt. The syntax and structure isn't that hard to learn, even for newbies. Basic usage of the more commonly used parts of the AutoIt library shouldn't take too long for a starting programmer.

However, for total non-programmers, it's hard to say. The thing is, non-programmers need to get past the basics first before they can effectively construct programs/scripts in any language - basics like use of variables, logical statements, loops, functions, etc, then to more advanced stuff like data structures and the like. The advantage with AutoIt is that it has a well made help file which is very readable and helpful at a basic level.

For non-programmers, I'd say the learning curve would depend highly on whether they can think programmaticaly how to perform a certain task or achieve a certain goal, which involves breaking down a task into a series of actions which the programming language used allows you to perform. There are those who have a hard time with it and there are those who seems to understand it naturally.

As for learning your first language, it's usually easier to learn a first language than learning additional ones, since the mental bias is less when you have no knowledge to start with. After learning a few programming languages, you usually tend to start thinking in terms of one particular language you use. That's just how the brain works. We process new knowledge by putting it in terms of what we already understand.

Edited by omikron48

Share this post


Link to post
Share on other sites

Depends on what you need it for.. if you are looking for cross platform and embedded web application, look elsewhere.

Here's one of those elsewhere's, REBOL Language.

- Bruce /*somdcomputerguy */  If you change the way you look at things, the things you look at change.

Share this post


Link to post
Share on other sites

As for learning your first language, it's usually easier to learn a first language than learning additional ones, since the mental bias is less when you have no knowledge to start with. After learning a few programming languages, you usually tend to start thinking in terms of one particular language you use. That's just how the brain works. We process new knowledge by putting it in terms of what we already understand.

That is so true. Same applies when learning other spoken languages.

Auto it easy to learn if you are prepared to do the tuts and put in time to learn it. You can write good programs will very little knowledge, the same cannot be said for 3GLs (third generation language) such as C++, VB or Java. To create the same functionality in a 3GL as you can in AutoIt takes much more code and understanding.

The downside to AutoIt (as I found with VB learning it), when you get compile errors or strange stuff happens it can be hard to debug as you don't precisely know what the program is doing behind the scenes. The level of understanding is not always there to understand the problem and devise a solution - which is why most ppl get frustrated and quit. But the more you do, the more you learn, the better you get - as with anything.


Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic]

Share this post


Link to post
Share on other sites

I've found AutoIt EXTREMELY easy/fast/helpful for creating memory editing applications. I use NomadMemory and I've never had a single problem.

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

The downside to AutoIt (as I found with VB learning it), when you get compile errors or strange stuff happens it can be hard to debug as you don't precisely know what the program is doing behind the scenes.

AutoIt is quite flexible. Sometimes it's too flexible that it gets confusing when trying to debug a script error.

Take for example, the variable data type, free use of non-declared variables, automatic type conversion for some operations, with so much being hidden from and automatically taken care of for the user, it's easy to get lost and make simple mistakes which are hard to locate, whether a variable being used has not come into existence at a point in the script, or whether two variables are being compared using the wrong method.

Things like that is the trade off we get for an easy to learn and use programming language versus a difficult to learn and use programming language chock full of rules and structure.

Edited by omikron48

Share this post


Link to post
Share on other sites

AutoIt is more than capable of taking care of most requirements but it is not a low-level language so there will definitly be situations where it's not suitable to the task at hand. It all comes down to the users requirement at the time.


George

Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.

Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.***

The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number.

Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else.

"Old age and treachery will always overcome youth and skill!"

Share this post


Link to post
Share on other sites

It is designed for people who have never programed.

This is the body of the hello world

msgbox(0,"","Hello world!")

that tiny snippet of code will run a windows msg box saying hello world.

I recommend this language if you don't plan on getting too deep into editing the OS(even though you can through this)

Share this post


Link to post
Share on other sites

@Sobiech

Little detail.

Its "AutoIt" as in "Automate It"

Not "AutoIT" as in "Automated Information Technology". (or some shady software that seems to using this form.)

Thanks.


"Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions."
"The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014)

"Believing what you know ain't so" ...

Knock Knock ...
 

Share this post


Link to post
Share on other sites

For a starting language for Windows it's very good. The syntax is similar to Basic, which was designed for beginners. As mentioned it's always good to read up on several programming languages to understand how stuff works under the covers.

Once you get the idea of loops, comparisons, function calls etc.. then it's good to know more about programming structures, OOP and all the rest. The old Pre OOP books are still relevant such as

Algorithms + Data Structures = Programs.

Pascal was designed as a teaching language. It's another good one to pick up to learn what's going on since the syntax is very English like, as opposed to C.

Something low level later, such as assembler, can give more insight into what the machine does. But you should start with a language that is simple and gives you the idea of the logical flow.. comparison, loop and function call etc..

For Windows AutoIt3 is as good a place to start as any. But you should also do some truly compiled languages, such as Pascal or C as interpreters have their own idiosyncrasies. The more balanced a view you can get as you are learning the better. A Linux install can show you not everything looks like an MS window. :blink:

Share this post


Link to post
Share on other sites

AutoIt is quite flexible. Sometimes it's too flexible that it gets confusing when trying to debug a script error.

Take for example, the variable data type, free use of non-declared variables, automatic type conversion for some operations, with so much being hidden from and automatically taken care of for the user, it's easy to get lost and make simple mistakes which are hard to locate, whether a variable being used has not come into existence at a point in the script, or whether two variables are being compared using the wrong method.

Things like that is the trade off we get for an easy to learn and use programming language versus a difficult to learn and use programming language chock full of rules and structure.

I totally agree. I believe there is a big difference between inexperience and ignorance though. Coding poorly because the language lets you is ignorance. If ppl read the help file more or other code examples they would quick learn how things are laid out and avoid many mistakes.

I use Opt("MustDeclareVars", 1) which has save me no end of pain.


Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0