The new version of HotkeyNet incorporates a general purpose script language. It has the following features which are found in many languages:
The syntax is similar to C.
It compiles at load time to byte code.
It's executed by a virtual machine.
Functions can be overloaded.
Values have types but variables do not.
The program tries to cast values automatically wherever necessary so users don't have to think about types.
However users can control types and casts manually if they wish.
The language also has some unusual features:
Distributed processing is built into the language. You can put almost any statements inside a "sendto" block, and the local copy of HotkeyNet will send that code (in compiled form) to a remote copy of HotkeyNet where it will execute.
Since the code that is sent to a remote PC may contain function calls, functions bind only at the moment of execution.
Variables in sendto-blocks are dereferenced (assigned constant values) before the block is sent to a remote PC.
Is the new language hard to use?
The original version of HotkeyNet had a primitive script language that was easy to use. Many users are worried that the new language, which is much more powerful, will be much more difficult. This is not the case.
If you could write a script in HotkeyNet's old language, you'll be able to write a script in HotkeyNet's new language.
Here's an example showing how similar the syntax is. First, a hotkey definition in the old language: