Posts with the tag programming:

Version Control with Git

When choosing a programming language or database, there are so many options to choose from. And people regularly create new options since they are not happy with the existing ones. But for version control, there exists essentially just one option: Git. And while it takes some getting used to, it must do something right, if nobody wants to spend the effort to improve upon it. This is a small introduction.

Intuitive Indexing

While most programming languages use 0-based indexing some people are not convinced that this is a good thing and not just the legacy of the language C. They argue that starting to index with one is more intuitive than starting to index with zero, and that there is no good reason to use 0-based indices besides pointer arithmetic which should not be of concern to higher level programming.

And to be fair, proponents of zero based indexing have mostly failed to provide a convincing argument for their preference (Dijkstra’s range argument aside). To remedy this, I am going to present 5 arguments for 0-based indexing and address the intuition argument of 1-based indexing.