If there is one thing that tops my wish-list, that is a simple way to figure out the outcome of such simple actions as this:
Are the successive "Array" outputs going to be: {1, 2, 3} and {4, 5, 6} or {1,4}, {2,5} and {3,6} ?
I've been unable to find a good mnemonic to remember it.
So, each time I run into one of those, I've got to go through a debugging step. And since those functions are typically chained (say, convert an image into a 2D array, extract a sub-array, do some processing on it, replace the subarray, put back into image), this is a lot of debugging, which I have to repeat over and over again.
Don't get me wrong, debugging is not the issue. It is just that in language based environment, there would be no ambiguity as of which dimension of the array is read/written, because it is explicitly stated:
for (i=0; i<Nx; i++)
for (j=0; j<Ny; j++)
Array[i] = Input[i][j];
1D array functions are easy to interpret and use, but, at least to me, in higher dimensions troubles start with the simple "Index Array" function:
What's it going to be? {1,2,3} or {1,4}?
And if I want to access {2,5}, do I need to use this:
or that:
?
That may be just me (disclaimer: I can't seem to remember my left from my right), but I wished there was a more GRAPHICAL way to figure it out... I am not even starting to talk about more general N-dimensional arrays...
For 2D, here is my suggestion:
, or to mirror the actual control behavior:
Extensions to more dimensions could be looking something like:
and similarly for other array functions (I am just opening the Pandora box and running away).
Now, that does not really answer the question on how to figure out the outcome of my first example above... For this, I suggest (anathema!) to modify the auto-index design by offering an option to "expand" the auto-indexing icon and replace it with a larger, more explicit "function-like" icon:
Notice that, in my version of LabVIEW autoindex, you actually get a chance to choose which dimension is going to be auto-indexed. Of course that only works if know the dimension of the array beforehand, but that is most of the time the case.
Likewise for the autoindexing upon exiting a loop, although I am shying away from suggesting any design.
In summary, LabVIEW, which is supposed to be a graphical programming language, should offer better clues as of what some of the functions are doing. I have expressed my frustration with some of the array functions, but the same theme goes with others (such as strings! but then, LabVIEW is not a text-based language, so that would be unfair to try and compete with one).
My 2 cts.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.