Argument d'autorité
Eh bien ... Apparemment, la plupart des langues, y compris les plus récentes, sont basées sur zéro. Comme ces langues ont été écrites par des personnes assez habiles, votre ami doit se tromper ...
Pourquoi un?
pourquoi 1 serait un meilleur indice de départ que zéro? Pourquoi pas 2 ou 10? La réponse elle-même est intéressante car elle en dit long sur le processus bien mené par les personnes qui défendent l’idée.
Le premier argument est que c'est plus naturel, car le premier est généralement celui qui précède tous les autres, du moins, pour la majorité des gens ...
Le numéro un argument est que le dernier index est aussi la taille du tableau ...
Je suis toujours impressionné par la "qualité" des raisons que j'entends habituellement pour ce genre d'arguments ... Et plus encore quand on me le rappelle ...
Pourquoi pas zéro?
... Les notations "uniques" sont des traces de la culture occidentale qui a ignoré l'existence du zéro pendant des siècles, sinon plus.
Croyez-le ou non, le calendrier grégorien d'origine va de -3, -2, -1, 1, 2, 3 ... Essayez d'imaginer le problème que cela a contribué à la science occidentale (par exemple, combien d'années à partir du 1er janvier -2 au 1er janvier 2 pour voir que le calendrier grégorien original est en conflit avec quelque chose d'aussi simple que la soustraction ...).
Conserver des tableaux à base unique revient à dire (eh bien, je serai rétrogradé pour cela ... ^ _ ^ ...), à des milles et des mètres au 21ème siècle ...
Pourquoi zéro? Parce que c'est des maths!
D'abord (Oups ... Désolé ... je vais réessayer)
Zéro , zéro n'est rien, on est quelque chose. Et certains textes religieux affirment qu '"au début, il n'y avait rien". Certaines discussions liées à l’informatique peuvent être aussi brûlantes que des débats religieux, ce point n’est donc pas aussi éloigné des sujets qu’il le semble ... ^ _ ^
Premièrement , il est plus facile de travailler avec un tableau de base zéro et d'ignorer sa valeur zéro-ème que d'utiliser un tableau à une base et de rechercher la valeur zéro-ème. Cette raison est presque aussi stupide que la précédente, mais l'argument initial en faveur des tableaux à base unique était également assez fallacieux.
Deuxièmement , rappelons-nous que lorsque vous traitez avec des chiffres, il y a de grandes chances que vous traitiez avec les mathématiques à un moment ou à un autre, et que lorsque vous traitez avec des mathématiques, il est peu probable que vous ne soyez pas d'humeur à ce que des idiots stupides échappent aux conventions obsolètes. La notation basée sur One a également affecté les mathématiques et les dates pendant des siècles, et en tirant les leçons de nos erreurs, nous devrions nous efforcer de les éviter dans les sciences orientées vers l’avenir (y compris les langages informatiques).
Troisièmement , en ce qui concerne les tableaux en langage informatique liés au matériel, allouez un tableau C de 21 nombres entiers et déplacez le pointeur 10 index vers la droite pour obtenir un tableau naturel [-10 à 10]. Ce n'est pas naturel pour le matériel. Mais c'est pour les maths. Bien sûr, les mathématiques pourraient être obsolètes, mais la dernière fois que j'ai vérifié, la plupart des gens dans le monde pensaient que ce n'était pas le cas.
Quatrièmement , comme nous l’avons déjà souligné ailleurs, même pour une position discrète (ou des distances réduites à des valeurs discrètes), le premier indice serait égal à zéro, comme le sol d’un bâtiment (à partir de zéro), le compte à rebours décroissant (3, 2, 1, ZERO). !), l’altitude au sol, le premier pixel d’une image, la température (zéro Kelvin, pour le zéro absolu, ou zéro degré centigrades, en tant que température de congélation de l’eau de 273 K). En fait, la seule chose qui commence vraiment avec l'un est la manière traditionnelle de " premier , deuxième , troisième , etc." la notation d' itération , qui me conduit naturellement au point suivant ...
Cinq le prochain point de (qui suit naturellement la précédente ) est que les conteneurs de haut niveau devraient être accessibles, non par index, mais par itérateurs , à moins que les indices eux - mêmes ont une valeur intrinsèque. Je suis surpris que votre avocat du "langage de plus haut niveau" ne l'ait pas mentionné. Dans le cas où l'indice lui-même est important, vous pouvez parier que la moitié du temps que vous avez une question liée aux mathématiques à l'esprit. Et ainsi, vous voudriez que votre conteneur soit adapté aux mathématiques, et non handicapé, comme "ton vieux calendrier grégorien" à partir de 1, et nécessitant des piratages régurgités pour le faire fonctionner.
Conclusion
L'argument avancé par votre collègue programmeur est une erreur, car il lie inutilement des habitudes de langage parlé / écrit, qui sont, par nature, floues, aux langages informatiques (où vous ne voulez pas que votre instruction soit floue), et parce qu'en attribuant à tort un matériel raison de ce problème, il espère vous convaincre, alors que les langues sont de plus en plus abstraites, que le tableau à base zéro appartient au passé.
Les tableaux basés sur zéro sont basés sur zéro pour des raisons liées aux mathématiques. Pas pour des raisons liées au matériel.
Maintenant, si cela pose un problème à votre collègue programmeur, demandez-lui de commencer à programmer avec de véritables constructions de haut niveau, telles que des itérateurs et des boucles foreach.