When I am in other languages like C/C++ I tell myself that I working with memory addresses. For memory addresses 0-index makes more sense. For tables, matrices etc I honestly think 1-based indexing makes more sense.
Only time I dislike 1-based indexing in Julia is when I write code which is strongly related to how memory works. Like when I was implementing a CPU simulator and assembler.
After studying ordinal numbers, I feel like the normal way to start counting is from 0 (or the "empty set" ordinal).
This is also how you prove something by transfinite induction, you need to start by 0.
I wish I could easily recompile Julia so that it is 0-indexed. But then what about all the libraries...
I try to write code to accept 0-, 1-, 2-, and StarWars-based indexing.
So it's this "extra work" that is the problem.
It would be nice to have it as an environment variable or a runtime option. Then what about portability issues...
So let's just fork Julia and call it JuliB with 0-indexing =)
> the technical reason we started counting arrays at zero is that in the mid-1960’s, you could shave a few cycles off of a program’s compilation time on an IBM 7094. The social reason is that we had to save every cycle we could, because if the job didn’t finish fast it might not finish at all and you never know when you’re getting bumped off the hardware because the President of IBM just called and fuck your thesis, it’s yacht-racing time.