Jump to content
DrOtosclerosi

AutoIT as main programming language: is it useful enough?

Recommended Posts

First of all sorry if this is a duplicate post (no results by searching) or if it doesn't belong to this section. I tried my best.

I am currently developing a quite big project (3500 lines + 700 lines on another source), which started as a simple one but turned out to be complex (the compiled exe will be used as a management software and an invoice software for the office in which i work).

As far as i know, AutoIT should be used only for simple automation or simple scripting, but not for complex projects.

Actually the software works very well, it's fast and responsive, and the code is relatively easy to read and mantain.
I'll add many features and I'm comfortable when I have to fix some bugs.

TL;DR:

So my question and the actual topic I would like to discuss is: is AutoIt ready to be a full-time programming language (or to say it in a more precise way: scripting language) for real-life business developing?

For example I can't imagine how painful and harder it would be to develop the same software in, let's say, C#, which is even a quite easy programming language.

It seems a big "yes" to me, as there are plenty UDFs for almost everything and it only lacks a proper OOP implementation (but also C lacks it).

I can even query databases, do nested conditionals without slowing down everything, manipulate strings in easy way and so on.

I can't see why it shouldn't be, as advertised almost everywhere.

 

Share this post


Link to post
Share on other sites
2 hours ago, DrOtosclerosi said:

I am currently developing a quite big project (3500 lines + 700 lines on another source),

you mean: the little one ?


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites
2 hours ago, mLipok said:

you mean: the little one ?

is not important how long it is, but how do you use it ;)
 

Jokes apart, still bigger than most of the automation scripts like "move cursor from A to B and then click on Shutdown ;ajajaj hackArr"

Share this post


Link to post
Share on other sites

I think you answered your own question.  AutoIt is a great language to develop "real" programs in.  Especially the Management tools which is what some of my bigger scripts are for.  My most often used tool is 10,545 lines and it does everything I need it to just a well as any of the big languages would have.


hmm... I guess I have to have a signature...

Share this post


Link to post
Share on other sites

btw.

How complicated it is?

check it using:

#Au3Stripper_Parameters=/RM /SO /RSLN /PE

And check ***_stripped.au3 file how many lines and bytes it contains

For example:   my biggest project have :       35516 lines and 1 251 423 Bytes

 

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API Forum Rules *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

11

Signature last update: 2018-10-31

Share this post


Link to post
Share on other sites
8 hours ago, DrOtosclerosi said:

is AutoIt ready to be a full-time programming language (or to say it in a more precise way: scripting language) for real-life business developing?

Full-stack OO programming language? No. Go-To tool for anything that touches the Windows API? Definitely. Right choice for anything else? Maybe

I have been developing custom scripts and apps for companies with AutoIt since 2009. In my own experience, your 3500 lines is about middle of the road when automating suites like SCCM, Altiris, A.D. integrations, etc. There is always an opportunity to consolidate code, but in the end number of lines should not be your first concern over readability and best practices.

There are definitely cases where AutoIt will not be the choice, and for those you have to turn to the right tool for the job. But my thought process when presented with new requests even to this day (literally working on one for a customer as I browse the forum) is "Can I do this with AutoIt?", "If not, am I sure I can't do it with AutoIt?", and finally "If not, what would the best tool for the job be?"

Share this post


Link to post
Share on other sites
16 hours ago, DrOtosclerosi said:

So my question and the actual topic I would like to discuss is: is AutoIt ready to be a full-time programming language (or to say it in a more precise way: scripting language) for real-life business developing?

AutoIt has become much more than just a scripting language over the years. Originally it was just a scripting language, with no GUI capability, but now it is so much more, and your number of lines of code is quite small to the many projects I have worked on and indeed to that of many others who use AutoIt. But as JLogan has said, may be pretty normal for the stuff he lists.

Really at the end of the day, it down to the limits of your imagination and capabilities, to what you can use AutoIt for, though sometimes you need to use other tools that are better suited, as has been said. That said, I find myself often using AutoIt to quickly and efficiently develop a frontend for other programs, built with other languages. Often because I am making up for the lack or shortfall of others who made those programs.


AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites

I go along with what the moderator stated earlier. It’s a great handy tool for certain things and operations. For full stack programming I would not use it I would use something like C# or even Python 

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites
20 hours ago, JLogan3o13 said:

There are definitely cases where AutoIt will not be the choice, and for those you have to turn to the right tool for the job. But my thought process when presented with new requests even to this day (literally working on one for a customer as I browse the forum) is "Can I do this with AutoIt?", "If not, am I sure I can't do it with AutoIt?", and finally "If not, what would the best tool for the job be?"

That's exactly what I meant.

Most of the things I have to develop here are easily done with AutoIT, while probably many people would use C# or other languages.
But in fact I always think "I can do this in AutoIT easily, and it will work flawlessy" and i go for it.
Just as I do with Bash scripting in Linux, when talking about system mainteinance or log parsing.
I see many people being like "HAHAHA AUTOIT AUTOMATION AND NOBODY USE IT IN BUSINESS" but i think that's a closed-mind attitude.

 

12 hours ago, TheSaint said:

 That said, I find myself often using AutoIt to quickly and efficiently develop a frontend for other programs, built with other languages.

That's also a very good point, I did it some times with programs without a GUI and with closed source, so AutoIT was perfect for make them usable to the end-user.

 

3 hours ago, Earthshine said:

For full stack programming I would not use it I would use something like C# or even Python 

That's for sure, in that case I would even avoid the .NET framework and skip directly to something more low-level.

 

On 13/2/2019 at 2:42 PM, mLipok said:

btw.

How complicated it is?

check it using:

#Au3Stripper_Parameters=/RM /SO /RSLN /PE

And check ***_stripped.au3 file how many lines and bytes it contains

For example:   my biggest project have :       35516 lines and 1 251 423 Bytes

 

I honestly did not understand the point sorry

Share this post


Link to post
Share on other sites

why the penchant for low level? are you doing embedded systems or realtime military stuff?

 .NET is wonderful. I will be blessed if I never have to write unmanaged code again, thank you. it's funny, you love autoit so much but if you had to go full stack you would go old school unmanaged C code? LOL, now you are making me laugh.

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites

I've been working with AutoIt for a solid 5 or so years. It may be a bit finicky but I'd say my abilities in this language will fail long before AutoIt will fail me. I've had to work around what people suggested may be "bugs in AutoIt" a handful of times with scripts that should work fine, but I've always gotten the job done.

Now if I was in your position, I would have skipped AutoIt and essentially developed that as a website.

Share this post


Link to post
Share on other sites

In my opinion most important is the design of your project.
Means: First you need a catalog of specifications (functionality, security, privacy req., performance ...), then you select the language to implement them.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2019-03-02 - Version 1.3.5.0) - Download - General Help & Support - Example Scripts - Wiki
Outlook Tools (2019-01-22 - Version 0.1.0.0) - Download - General Help & Support
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites

Hi,

isn´t it strange that this question is asked again and again? What have these people been working on in their lives, and what tools have been used by them? How do I have to imagine a questioner who is not able to solve the simplest problem creatively? Using the right tool to solve a problem is one of the basic components of human existence. People who use a shoe to "hammer" a nail into a wall use possibly the wrong tool, but they DO something to solve the problem by themselves. People who ask in a internet forum "is a shoe the right tool to put a nail into a wall?" do NOTHING. They leave other people to find a solution. Creative? No. Will they ever become a good craftsman or programmer? EVER? No...

Writing computer programs to solve problems is (most of the time) a very creative, exhausting and demanding process. For some of us it is fun most of the time, sometimes it is really hard work. We have to use MANY tools every single day, and yes, we often use "wrong" tools, but we DO everything to solve the actual problem. If we find a better tool, we use it instead. But the question of "usefulness"?

The answer to the question "AutoIT as main programming language: is it useful enough?" is only "YES" or "NO". Depending only to the personal experience of the answering people. But....is "I have (not) the experience to solve a computer problem with this language!" the answer which helps the OP in any way? And does this answer helps other people who find this thread? Will this answer make them DO something? Is this thread "useful"?

 

If the question would be "Which programming language/UDF/API/Script/Snippet/Function/Framework/Library/Method/Object/Class/techniqe.... do YOU (as a experienced programmer)  recommend to solve THIS/MY (described below) problem?", then the "experienced" (or not) programmer could give a (more or less) helpful answer. And possibly show a nice Autoit script. Or refer to other "useful" programming languages like ....(placeholder for ANY programming language). Yes, ANY!

I am sure that people asking for "usefulness" of a programming language are not able to program. I'm not even sure if they'll ever DO anything "useful"....

 

And with a little hope that this post is not completely "useless", a following link:

http://www.catb.org/~esr/faqs/smart-questions.html

 

Share this post


Link to post
Share on other sites

I agree the question is ill-posed.

If the question is to determine which language fulfills the broadest "general" needs and hence is the most "useful" (in a sense), then there is a single and easy answer: Ada. That's because Ada is the result of the largest research by the most brilliant minds and worldwide competition to satisfy this precise requirement. It's recent revision, Ada2012, is extremely safe, robust and powerful. Yet its use is surprisingly rare in IT (go figure, see below).

As others have already pointed out, AutoIt is a surprisingly capable language for a very significant number of use cases and if it suits your needs, why not keep enjoying its simplicity of implementation.

 

As an aside, I've worked for Ada's author team (led by Jean Ichbiah) and I can tell you that producing Ada compilers isn't a light and easy task!
I've also worked later with the B formal method (team led by Jean-Raymond Abrial), which may deliver Ada* or C* code along with a formal proof of correctness. (The star denotes the limitation to the safe and provable part of the language.)

So we have methods and tools to produce software formally (= mathematically) proven 100% correct with respect of formal specifications, still we see in practice that these tools and languages are only used in niches where  dependability is an absolute concern, else they're not used at all in general software development.

The contrapositive of this is "if your context doesn't impose to you extremely strong requirements, safety and robustness proofs, then use inferior methods and languages". No wonder why a huge number of software pieces are riddled with bugs and need daily, weekly, monthly, yearly so-called "updates"...


This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

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

×
×
  • Create New...