I agree @Aswin. My first real experience of programming was on a ZX81 in the 80s where arrays were one-based. After that, just about every language I’ve used professionally had data arrays which have been zero (offset) based. The slight exception iirc was VB3 which let you choose which you wanted for your particular application!
So offset from start (with zero as the first element) is what I am used to as programmer, and yet it still came as a surprise to me when I first used Knime, only to discover the label “Row0”! That just felt odd, since a row feels like a physical construct rather than an abstract memory construct and so in the real world (and especially spreadsheets!) I’m used to it starting at 1.
I hadn’t really thought about the inconsistency though until you raised it here.
Knime of course treads an interesting line between high level “no code” workflows and allowing some powerful techie “under the hood” scripting, and I think that “split personality” (or maybe I should more kindly refer to it as “dual-personality”) does show through a little at times.
The trouble now of course is that either we just accept that this idiosyncratic issue is what it is and live with it, or it gets changed.
But if it gets changed they (Knime) would have to ensure backward compatibility, and that would be an interesting challenge. (not one I’d like to be responsible for!)
Of course an environmental switch (like VB3) could allow the user to set the “base index” on a workflow-by-workflow basis (or set it as maybe running in “compatability mode”) but I can see that presenting issues and confusion especially where workflows are so widely shared and there is such good collaboration as there is here, and that small row number translation could also have a noticeable performance impact on large data sets.
I also dread to think how much existing code on the Knime AP and Knime Server software would have to be inspected and touched to enable such a change.
So yes, I’m supportive of the idea you raise, and have found it useful that you’ve raised it, but I’m not going to hold my breath!