DrOtosclerosi Posted February 13, 2019 Share Posted February 13, 2019 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. Link to comment Share on other sites More sharing options...
mLipok Posted February 13, 2019 Share Posted February 13, 2019 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 ? Skysnake 1 Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * 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 API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * 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 * SciTE - Lexer for console pane * 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 * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX 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 * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * 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 *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "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" , 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." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
DrOtosclerosi Posted February 13, 2019 Author Share Posted February 13, 2019 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" Link to comment Share on other sites More sharing options...
BigDaddyO Posted February 13, 2019 Share Posted February 13, 2019 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. Link to comment Share on other sites More sharing options...
mLipok Posted February 13, 2019 Share Posted February 13, 2019 (edited) 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 February 13, 2019 by mLipok Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * 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 API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * 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 * SciTE - Lexer for console pane * 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 * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX 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 * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * 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 *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "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" , 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." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted February 13, 2019 Moderators Share Posted February 13, 2019 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?" Xandy 1 "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
TheSaint Posted February 14, 2019 Share Posted February 14, 2019 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. 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) Link to comment Share on other sites More sharing options...
Earthshine Posted February 14, 2019 Share Posted February 14, 2019 (edited) 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 February 14, 2019 by Earthshine My resources are limited. You must ask the right questions Link to comment Share on other sites More sharing options...
DrOtosclerosi Posted February 14, 2019 Author Share Posted February 14, 2019 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 Link to comment Share on other sites More sharing options...
Earthshine Posted February 14, 2019 Share Posted February 14, 2019 (edited) 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 February 14, 2019 by Earthshine My resources are limited. You must ask the right questions Link to comment Share on other sites More sharing options...
Eude Posted March 2, 2019 Share Posted March 2, 2019 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. Link to comment Share on other sites More sharing options...
water Posted March 3, 2019 Share Posted March 3, 2019 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. FrancescoDiMuro 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
AndyG Posted March 3, 2019 Share Posted March 3, 2019 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 Xandy and Musashi 2 Link to comment Share on other sites More sharing options...
jchd Posted March 3, 2019 Share Posted March 3, 2019 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"... czardas 1 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 hereRegExp tutorial: enough to get startedPCRE 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) Link to comment Share on other sites More sharing options...
JockoDundee Posted October 5, 2020 Share Posted October 5, 2020 On 3/3/2019 at 3:32 AM, jchd said: 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.) Serious question, how big is the fraction AutoIt*/AutoIt ? Code hard, but don’t hard code... Link to comment Share on other sites More sharing options...
jchd Posted October 5, 2020 Share Posted October 5, 2020 That would require a formal analysis but if one only considers the core and a reasonable share of its standard functions (excluding objects, dll, possibly GDI and more extra stuff) I suspect this ratio should be fairly good. AutoIt is a simple language with little dark corners, quite accessible to formal representation. Of course it's slow and wide open to abuse. 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 hereRegExp tutorial: enough to get startedPCRE 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) Link to comment Share on other sites More sharing options...
JockoDundee Posted October 5, 2020 Share Posted October 5, 2020 5 minutes ago, jchd said: Of course it's slow and wide open to abuse. It’s been all downhill since Smalltalk, AFAIC Code hard, but don’t hard code... Link to comment Share on other sites More sharing options...
Skysnake Posted October 19, 2020 Share Posted October 19, 2020 I have a commercial app based on Autoit that runs into 50k lines Danyfirex 1 Skysnake Why is the snake in the sky? Link to comment Share on other sites More sharing options...
Confuzzled Posted October 20, 2020 Share Posted October 20, 2020 (edited) To reply to the original poster (who possibly now works as a consultant to the UK NHS writing Excel macros for covid tracking-sorry), you need to know the limitations of your tools. To somebody that has an hammer, everything looks like a nail. Use the appropriate tools for your needs. Keep up to date with the current trends, both in your coding life and in your cv, and you will go far. Diversify, expand your horizons, and never, ever mix code from different languages while you are not fully alert! Don't use Excel for storing data,as Microsoft offered Access for that. Come to think, probably don't use Access either, but that's another story! Document your code well. Keep the documentation up to date in parallel with your coding changes. Standardise on subroutines/API's that perform repeated actions - no need to keep solving the same problem over and over. What I find astonishing is new versions of software will be released by developers, without little thought for how they will be rolled out and integrated into a production environment. You have to struggle with poor documentation and write custom scripts to answer prompts and configure destination paths so that you can shoehorn it into your environment without the support desk being overloaded with simple questions. Computers were supposed to save time and effort. Men in white coats tending to mainframes in air-conditioned rooms with false floors shouldn't exist any more. Answer me then, why is it so hard to make something just work, and work well? Can't we throw artificial intelligence at it to supplement natural intelligence of coders? Having said that, I did make $600/hour twenty odd years ago fixing COBOL code during the leadup to the Y2K fizzer. Experience beats enthusiasm every time! Bill Gates spoke about WYSIWYG (What You See Is What You Get) all those decades ago (yes, I was there to hear it, watch it crash, and giggle), but what we really need is WYWIWYG (What You Want Is What You Get) - sadly it still doesn't happen very often yet! /abusive rant mode off/ Edited October 20, 2020 by Confuzzled Skysnake 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now