Pourquoi XMLHttpRequest ne semble-t-il pas suivre une convention de dénomination?

28

J'ai récemment travaillé avec l' objet XMLHttpRequest en JavaScript, et je n'ai pas pu m'empêcher de remarquer que la casse de ce nom n'a aucun sens. Pourquoi «XML» est-il tout en majuscules alors que «Http» ne l'est pas? Ce sont deux acronymes!

Il serait sûrement plus logique que le nom soit l'un des suivants:

  • XmlHttpRequest (PascalCase, meilleure pratique pour les noms de classe en JavaScript)
  • xmlHttpRequest (camelCase, également commun mais pas pour les classes)
  • XMLHTTPRequest (majuscules pour acronymes, rarement utilisé en programmation?)

Je suis sûr qu'il doit y avoir une raison et je détesterais penser que c'est maintenant gravé dans la pierre juste parce que personne ne l'a remis en question à l'époque. Y a-t-il une autre convention de dénomination que je ne connais pas?

Alec
la source
9
Sidenote: Java a une incohérence de dénomination très similaire: le HttpURLConnection.
Joachim Sauer
6
Sidenote # 2: Au moins ceux-ci sont correctement orthographiés, contrairement à l'en- HTTP_REFERERtête ...
OnoSendai
3
Je soupçonne que cela relève de la catégorie "Certains développeurs ont fait une erreur et maintenant nous ne pouvons pas la corriger", mais il est probable qu'une seule personne au monde connaît la réponse réelle.
Martin Brown
1
Pourtant, vous ne vous demandez pas pourquoi il a XML (ou même HTTP) dans le nom en premier lieu?
Arrêtez de nuire à Monica

Réponses:

15

Chose intéressante, Microsoft l'a appelé pour la première fois IXMLHTTPRequestlorsqu'il a été ajouté à la bibliothèque MSXML .

C'est Mozilla qui a utilisé le nom XMLHttpRequestquand il a ajouté le concept dans Gecko, implémentant l'idée d'imiter l'interface MS. Il est depuis devenu la norme de facto, liant toutes les autres implémentations à la décision de Mozilla.

Vous devriez aller faire de la spéléologie dans le Mozilla Bugzilla pour voir si vous pouvez trouver un quelconque raisonnement pour les changements de capuchons là-bas, mais je soupçonne que peu de réflexion y est entrée et que la mise en minuscule de la ttppartie est accidentelle.

Ceci est corroboré par la faute d'orthographe de l'interface Microsoft dans la définition d'interface nsIXMLHttpRequest (première révision dans le référentiel Mozilla Mercurial) :

XMLHttpRequest de Mozilla est modélisé d'après l'objet IXMLHttpRequest de Microsoft. L'objectif était de faire en sorte que la version de Mozilla corresponde le plus possible à la version de Microsoft, mais il y a forcément des différences.

Martijn Pieters
la source
Ah je vois, donc c'est intentionnel dans la mesure où il est basé sur une instance antérieure de l'orthographe. Je n'aime toujours pas ça - mais au moins je peux comprendre comment ça s'est passé. Merci pour une excellente réponse.
Alec
6
Notez que bien que XML et URL soient généralement en majuscules, les références à http en minuscules sont omniprésentes en HTML. XMLHttpRequestPeut donc être considéré comme un boîtier chameau des identifiants combinés.
hardmath
2
Si vous remontez à la première révision dans CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… C'est comme ça. L'auteur original était Vidur Apparao, donc peut-être que quelqu'un peut le retrouver (il est CTO chez Agari de nos jours: agari.com/team/vidur-apparao ) et lui demander. Malheureusement, il n'y a rien dans bugzilla à ce sujet, à l'époque de Netscape, ils n'étaient pas géniaux pour déposer des bogues pour suivre le travail.
Ted Mielczarek
4

Certaines directives de dénomination font une distinction entre les acronymes «courts» et «longs». Par exemple, le guide de style de codage pour le runtime .Net de Microsoft spécifie que les acronymes courts doivent être en majuscules tandis que les acronymes longs ne doivent avoir que la première lettre en majuscule. Leur seuil pour un acronyme long est de 3 lettres, donc favoriserait "XmlHttpRequest", cependant il n'est pas déraisonnable de penser que certaines personnes peuvent utiliser une règle similaire avec 4 caractères comme seuil.

J'ai regardé d'anciennes copies du guide de style mozilla.org, et aucune ne semble rien spécifier sur les acronymes, mais il est possible que ce soit un ancien guide Netscape, ou que le développeur ait appliqué une règle qu'il avait choisie ailleurs.

Jules
la source