Script Languages vs Antivirus Programs

Antivirus Woes for Freeware Software Developers

Due to the fact that hackers use more and more ways to create malware, spyware, etc. it has become more difficult to write software that does not cause antivirus programs to sometimes display warning messages. For example, my computer at work decided to eat two of my home grown programs the other morning when I logged in. I have been using those same applications for months without incident. But, after an update of the antivirus software database, it decided they were dangerous and removed them. So I had to add those programs as exceptions to the antivirus and copy them back to my work computer. What a pain!

After looking for several weeknights of time, I have determined that I can stick with AutoHotkey as my main script language if I do not compile my programs. Compiling is the process that takes the plain text language of any script or program and converts it into a standard executable Windows program. For AutoHotkey, the user written script is combined with the AutoHotkey interpreter and any other icons, included files, etc. into one file ending with .exe. Doing this makes it easy for other users to run any of my programs. But, starting last summer, more and more antivirus programs throw up warning about some of my applications.

Here are other alternatives I’ve been looking into, most of which are over 20 years old. All of these programming languages are free to download  and use.

Language Name: Pros: Cons: Size of a “Hello World” exe file:
Rebol
  1. Very small and fast. Decent Graphical User Interface applications can be written quickly.
  2. Distribution contains the Rebol interpreter and user written script files.
  3. Language allows are very concise programs that can be much quicker to write.
  4. In addition to the Forum there are over 1,000 user written scripts on Rebol.org.
  5. The Rebol websites are also run by server side Rebol scripts.
  6. No antivirus warnings.
  7. User Nick Antonaccio has a handful of Rebol tutorial sites and almost 70 videos, which is more than a great start to learning Rebol. See Rebol Tutorials)
  1. Takes a bit of getting used to as it is somewhat different from traditional languages.
  2. Version 2 last updated 7 years ago. Version 3 is Open Source and hasn’t been updated for about 5 years publicly. (There is a company called Saphirion that uses their own version of Rebol 3)
  3. Many standard features of Windows applications take extra work to implement in Rebol. Documentation of a lot of features is incomplete. Very frustrating to figure out how to do things that are already part of most Windows programs.
  4. No source code protection.
844 KB
Red Since Red is based on Rebol is has the same Pros with the addition of:

  1. being able to compile script to exe files for different Operating Systems (Windows, Linux, Mac OS, Android).
  2. Updated yearly.
  3. Source code protection via compiling.
  1. Same Cons as Rebol plus it add features and takes some away and has a ways to go before all the desired features are present.
  2. Several antivirus warnings on VirusTotal.
634 KB
Tcl/Tk
  1. This language has been around for quite a while and has a lot of tools and add-ons available.
  2. The Tk toolkit allows the creation of any sort of graphical interface.
  3. Last updated this year to v8.6.8.
  4. Source code protection via compiling.
  5. No antivirus warnings.
  1. Somewhat difficult syntax with great expansion of functions over the years.
  2. A wide variety of add-ons take some time to sort through.
  3. Three steps are required to convert scripts to executable files. And the smallest executable files are around 5 MB.
5,000 KB
Open Euphoria
  1. A somewhat more Basic like language which is easier to learn than Tcl.
  2. Scripts can be easily converted to executable files with Bind.
  3. Graphical User interfaces can be created with libraries for Windows 32, GTK (from Unix) and IUP. The last two libraries help create programs for Windows, Mac and Unix.
  4. Source code protection via compiling.
  5. No antivirus warnings.
  1. Getting a proper development environment setup can take time. Euphoria relies on system variables to find its interpreter, includes and compiler.
  2. Several editors are available and choosing one takes time as well.
  3. The language relies on lots of included .e files for most of it standard functions.
  4. Last updated in 2013.
2,300 KB
AutoHotkey (my default language)
  1. Somewhat easy to learn.
  2. Has all the bells and whistles to create graphical Windows programs.
  3. Can run scripts via its interpreter or compiling.
  4. Updated a couple of times a year.
  5. Source code protection via compiling with compression.
  1. Causes Antivirus programs to display warnings when AutoHotkey applications contain other files or heavily use the keyboard.
  2. Not as modern as some script languages. Sister language to AutoIT which now uses a BASIC-like dialect.
  3. A few to many antivirus warnings depending on script complexity and embedded files.
809 KB

or

332 KB
(compressed)

Python
  1. Has a huge following and ecosystem.
  2. Has a lot of different types of installations from first time users to professionals.
  3. Recognized as one of the top 5 programming languages to learn and make top dollar with.
  4. Source code protection via compiling.
  1. Largely used for scientific, numerical and charting intensive applications that dive into lots of data.
  2. Has a quite stringent language syntax.
  3. The sheer amount of options take time to grasp.
  4. Using the Anaconda environment takes up 6gb of disk space.
  5. Several antivirus warnings with a compiled exe file.
5,709 KB !!

As can been seen from this table, while there are several script languages that can be compiled for easy distribution to users, there are many difference between them. From as little as 332 kilobytes to as much as 5,709 kilobytes, all of the programs create the same output.

I’ve always preferred small executable files for simple utilities and don’t really see myself using something like Python for anything but data manipulation, number crunching and fancy statistics and charts. While Tcl and Euphoria can do the types of programs I like to write, either one will take time to get a good handle on.

I have written one application in Rebol that has shown me how little program code can accomplish quite a lot. But, the drawbacks are that it doesn’t have the same look and feel as most Windows programs, out of the box. I will probably spend more time with it. Eventually, Red will be more complete and I’ll check it out again. It’s creator plans for it to support PC and Mobile devices, which will be quite nice even if that is a year or two away.

In the meantime, I will look into repackaging my AutoHotkey applications with new Installers and see if that avoids most of the Antivirus warnings that I and others have experienced.

Happy programming to those who like to tinker applications together,

Mike


Leave a Reply