du coup j'ai 3 questions :
pourquoi ils ont implémenté at ?
Comme a ete dit au dessus, c'est probablement une raison de compatibilite arriere. Une fois que tu as defini le comportement d'une fonctionnalite, tu ne veux pas la changer. Si tu la changes, tu risques de casser des tonnes de codes qui se reposent sur cette fonctionnalite.
JavaScript est un langage qui est fait de bric et de broc parcequ'il a ete developpe originalement dans un context different et avec une attention mineure a sa standardisation originalement. (Lis l'histoire sur wikipedia.) Donc originalement, le comportement du langage n'avait pas ete regarder de facon trop attentive. Une fois que tu as de l'adoption, tu es enchaine au comportement existant. Si tu changes le comportement du langage, tu forces des millions de page web a etre mise a jour pour corriger le bug que le changement a introduit. Personne n'aime ca.
Donc j'imagine qu'ils ont introduit at en reponse a un besoin et par peur de casser le comportement de [].
comment je fais pour trouver la réponse à ce type question sur internet ?
C'est psa forcement facil. Ce que je ferais dans ce commencer par chercher quelle est la premiere version de javascript qui contient at(). Ensuite je chercherais cette version de la norme javascript. Ca pourrait contenir les details de pourquoi c'est fait comme ca. Et si ca ne repond pas a ta question, il y a certainement des communications de l'epoque dans l'equipe de normalisation qui explique la raison du changement.
dans le but d'être un meilleur développeur est ce que je dois me poser ce genre de question ou est ce que je perds mon temps ?
Ce n'est pas une mauvaise question a se poser. Souvent il y a une bonne raison. Et comprendre cette raison peut t'aider a prendre de meilleur decision de design eventuellement. Aussi, si tu ne comprends pas le design d'une fonctionnalite, il y a de bonne chance que tu ne comprennes pas la fonctionnalite entierement. Donc poser la question peut t'aider a comprendre mieux.
Mais je ne passerai pas trop de temps a explorer ces questions. Surtout quand on commence un nouveau langage ou la programmation en general. Parceque a ce niveau la, on a tendance a juste manque de maturite dans le langage pour comprendre les raisons.