Compared to standard programs
Variables are the primary ways you perform calculations in ImageTank. In some ways they are similar to variables in a standard programming language like C, C++, Python etc. But they combine data and computation. Take a simple example a hypothetical programming language
file = openFile("/tmp/test.csv") table = readTableFromCSV(file,("x","y"))
The first step either opens or reads a file and puts the content into a variable. The second line then takes that variable and reads from it. The second function takes in additional arguments that are needed. The content is then put into a second variable.
Let’s go through the same action in ImageTank and what is similar and what is different. First some observation about this and similar programs.
- There are two objects stored in memory, and the program will refer to each of them using a text label.
- Some of the arguments are visible in the code, others will not be known until you run the program.
- The order of the lines determines the order that they are executed, and changing their order in the text would break the program.
- You typically need to look in a separate documentation file to know which arguments are valid and in what order they have to be if you have many of them.
ImageTank handles programs fundamentally differently.
- Objects are referenced to as objects and don’t have names. You can describe them with a label, but you can change it without affecting the program.
- Arguments are specified throughout a user interface that includes descriptive text for each argument.
- Some arguments are typed in numbers and text labels, but others are references to other objects in a collection of objects.
- The objects form a collection, where the order doesn’t matter.
- Objects define their relationship and ImageTank decides in what order they are computed or if they are computed at all.
- A program is evaluated and not run, a subtle difference.
The “code” for the above doesn’t look that different in ImageTank than in the text based programming language.
There are two objects, one is a file and the other a table. You can see that from the image. The top part of the object is always visible. For the first object, the argument is simple enough that no more information is needed. For the second there are a lot of options available and there is a disclosure triangle next to the icon to show all of the remaining details.
The variable type is indicated by the icon in the top left. This icon also gives you a good location to click on a variable to select it or to drag it around. See this page for a list of the variables that are defined.