Unpopular opinion: 0-based arrays are an artifact of the C array implementation details and not some One True Way Arrays Shall Be Indexed In Code. I appreciate languages that try to overcome it, both old like Pascal and new like Julia.
@mgorny not that xD But it kinda makes sense if we consider the point in time on the edge between CE and BCE the 0 point, with 1 CE being first year after and 1 BCE being first year before. There's no 0th year after all.
@Amikke, that's just a convention that makes computation difficult.
They reflect more of how the machine thinks than what a higher level language might manage.
@amerika @Amikke yes, this. Array index values can be converted quite easily to an address (or for much older processors, an index) register, leading to more efficient ops for the processor to run.
Remember, C was (and should still be) high-level, cross-platform assembly. If you want your hand held, there are other languages for that.
> .NET
It's powerful but aesthetically it makes me squirm.
I am good with classic C as well. Some aspects of Pascal might be wisely implemented in libraries in addition.
But Perl, Perl is the perfect do-anything language below the applications level. More people should speak it. It is pure brilliance.
@Amikke, do you also appreciate the fact that the year immediately preceding 1 CE is 1 BCE? xP