Version 1 (modified by Jon, 17 years ago) (diff)


There are several recurring requests for features that will most likely never be done in AutoIt. This list mentions some of those and why they will not be implemented. Please do not create threads asking for these features, they've been beaten to death and no further good can come from re-hashing the same points over and over.<br /><br /> Quick list of features:

  • Multi-threading
  • Object-Oriented syntax
  • AutoIt for [Mac, Linux, Windows CE]
  • Modularized compilation/variable sized compiled files
  • FileInstall() accepting variables for the source
  • New Opt()/AutoItSetOption() flags

Detailed list with explanations why certain features will not be done:

Multi-threading: It's too late to do this now. The changes required to AutoIt are too great. AutoIt was never intended to be multi-threaded. Writing a multi-threaded application requires an entirely different mindset when writing a program. We did not start with that mindset and trying to retrofit something as significant as multi-threading onto the existing code base is not worth the time or effort. It would be far more beneficial to re-write AutoIt and add in multi-threading that way. That, however, is not planned and is a massive undertaking.

Object-Oriented syntax: For a lengthy discussion on object-oriented concepts and why AutoIt does not and will not have them, see here.

AutoIt for other operating systems: First and foremost, AutoIt is a Windows application. It's meant to fill a need in a Windows environment. Mac and Linux/Unix have different needs and their own tools as well. Also, there isn't much overlap in OS capabilities as far as AutoIt is concerned. Even if AutoIt was ported to a different OS, it would be AutoIt in name only. It's unlikely that the functionality provided would mirror AutoIt on Windows. As for Windows CE, while it's true that it is in the Windows family, programming for Windows CE is pretty different than for the Desktop. It's different enough that for a program like AutoIt which heavily relies on Windows internal workings, Windows CE is a completely different operating system.

Modularized Compilation/variable sized compiled files: There are no plans to break AutoIt into components so that compiling a script will be smaller by only containing the components being used instead of everything. There are a couple reasons for this. First, it's a technological nightmare to implement. Second, it breaks any form of dynamic code. Features like Execute(), /AutoIt3ExecuteLine and /AutoIt3ExecuteScript would be broken. Having each compiled script capable of acting as a full-interpreter is a very powerful feature. Also, regardless of the size of a compiled file, remember that you still get a stand-alone product with no run-time dependencies outside what the operating system provides. A little size is a small price to pay.

FileInstall() accepting variables for the source: The source file used in a FileInstall() statement must be known at <u>compile</u> time. Variables are not evaluated until <u>run-time</u>. Changing this behavior makes no sense and will not be done.

New Opt()/AutoItSetOption() flags: Asking for an addition to Opt() is the same as forfeiting your life as far as I'm concerned. There are already far too many flags for this function, most of which do not need to exist in that function. Adding new flags is out of the question until some of the garbage flags are removed which isn't going to happen anytime soon.