''Scripts'' are ordered sequences of instructions for a program to execute automatically. In principle, it's basically the same thing as writing a computer software, but usually implies a lighter, easier and more efficient way to extend functionality already present. It's usually employed as a means for the end-user to automate tasks he/she often repeats.
The term is derived from the word ''script'' as used in the performing arts: a predefined storyline with specific dialogues to be followed.
Scripting languages can be generic or program-specific. They can also vary greatly in flexibility. Our chosen scripting language is Python.
Python is a dynamic programming language, which can be used for project development just as it can be used for scripting. That's why we decided to use it for the development of the user interface and several other parts of the central platform. This way we can develop non-time-critical features more efficiently and natively support scripting. If a user-made script eventually becomes interesting for other users, it can even be incorporated in the official distribution as part of the main program.
In theory, programs created entirely in Python can do (almost) everything as programs written in other languages. For some small programs this holds true, but for ''real'' software projects it's generally used in integration with C++ and C. These rather conservative languages are able to deliver fine-grained control over hardware resources, while Python takes care of everything else where this kind of fine-grained control isn't necessary.
Our modular architecture is designed to ensure that new modules comply with the scripting system. It's impossible (and even undesirable) to guarantee total compliance for third-party modules. Users and independent developers are free to create modules as they please. To be eligible for acceptance in the official distribution, though, some guidelines for acceptance must be observed.