Warum scheint XMLHttpRequest keiner Namenskonvention zu folgen?

28

Ich habe in letzter Zeit mit dem XMLHttpRequest- Objekt in JavaScript gearbeitet und festgestellt, dass die Schreibweise dieses Namens keinen Sinn ergibt. Warum ist "XML" in Großbuchstaben, "Http" nicht? Sie sind beide Akronyme!

Sicherlich wäre es sinnvoller, wenn der Name einer der folgenden wäre:

  • XmlHttpRequest (PascalCase, bewährte Methode für Klassennamen in JavaScript)
  • xmlHttpRequest (camelCase, auch häufig, aber nicht für Klassen)
  • XMLHTTPRequest ( Großbuchstaben für Akronyme, selten in der Programmierung verwendet?)

Ich bin mir sicher, dass es einen Grund geben muss und ich würde es hassen zu denken, dass es jetzt in Stein gemeißelt ist, nur weil dies zu der Zeit niemand in Frage stellte. Gibt es eine andere Namenskonvention, die mir nicht bekannt ist?

Alec
quelle
9
Nebenbei bemerkt: Java hat eine sehr ähnliche Namensgebung Inkonsistenz: Die HttpURLConnection.
Joachim Sauer
6
Nebenbemerkung Nr. 2: Zumindest die sind richtig geschrieben, im Gegensatz zum HTTP_REFERERHeader ...
OnoSendai
3
Ich vermute, dies fällt unter die Kategorie "Einige Entwickler haben einen Fehler gemacht und jetzt können wir ihn nicht korrigieren", aber es gibt wahrscheinlich nur eine Person auf der Welt, die die tatsächliche Antwort kennt.
Martin Brown
1
Sie wundern sich jedoch nicht, warum der Name überhaupt XML (oder sogar HTTP) enthält?
Hören Sie auf, Monica

Antworten:

15

Interessanterweise hat es Microsoft zum ersten Mal aufgerufen, IXMLHTTPRequestals es der MSXML-Bibliothek hinzugefügt wurde .

Es war Mozilla, der den Namen verwendete, XMLHttpRequestals er das Konzept zu Gecko hinzufügte und die Idee umsetzte, die MS-Oberfläche nachzuahmen. Es ist seitdem zum Defacto-Standard geworden und bindet alle anderen Implementierungen an Mozillas Entscheidung.

Sie müssten in Mozilla Bugzilla spelunking gehen, um zu sehen, ob Sie eine Begründung für die Änderung der Großbuchstaben finden können, aber ich vermute, dass nicht viel darüber nachgedacht wurde und die Unterteilung des ttpTeils zufällig ist.

Dies wird durch die falsche Schreibweise der Microsoft-Oberfläche in der Schnittstellendefinition nsIXMLHttpRequest (früheste Überarbeitung im Mozilla Mercurial-Repository) bestätigt :

Mozillas XMLHttpRequest ist dem IXMLHttpRequest-Objekt von Microsoft nachempfunden. Ziel war es, die Mozilla-Version so gut wie möglich an die Microsoft-Version anzupassen, aber es gibt sicherlich einige Unterschiede.

Martijn Pieters
quelle
Ah, ich verstehe, es ist insofern beabsichtigt, als es auf einer früheren Instanz der Rechtschreibung basiert. Ich mag es immer noch nicht - aber zumindest kann ich verstehen, wie es dazu kam. Vielen Dank für eine hervorragende Antwort.
Alec
6
Beachten Sie, dass XML und URL im Allgemeinen nur in Großbuchstaben angegeben sind, Verweise auf http in Kleinbuchstaben jedoch in HTML allgegenwärtig sind. So XMLHttpRequestkann der kombinierte Bezeichner als Kamelhülle angesehen werden.
Hardmath
2
Wenn Sie bis zur ersten Revision in CVS zurückgehen: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… Es ist so. Der ursprüngliche Autor war Vidur Apparao, also kann ihn vielleicht jemand ausfindig machen (er ist heutzutage CTO bei Agari: agari.com/team/vidur-apparao ) und ihn fragen. Leider hat Bugzilla nichts damit zu tun. In den Netscape-Tagen war es nicht so toll, Fehler einzureichen, um die Arbeit nachzuverfolgen.
Ted Mielczarek
4

Einige Benennungsrichtlinien unterscheiden zwischen "kurzen" und "langen" Akronymen. Zum Beispiel gibt der Codierungsstil-Leitfaden für die .Net-Laufzeit von Microsoft an, dass kurze Akronyme in Großbuchstaben geschrieben werden sollen, während bei langen Akronymen nur der erste Buchstabe groß geschrieben werden soll. Der Schwellenwert für ein langes Akronym liegt bei 3 Buchstaben. Daher wird "XmlHttpRequest" bevorzugt. Es ist jedoch nicht unvernünftig zu glauben, dass manche Leute eine ähnliche Regel mit 4 Zeichen als Schwellenwert verwenden.

Ich habe mir alte Kopien des mozilla.org-Styleguides angesehen und keine scheint etwas über Akronyme zu spezifizieren, aber es ist möglich, dass dies entweder ein älterer Netscape-Guide getan hat oder dass der Entwickler eine Regel anwendet, die er an anderer Stelle aufgegriffen hat.

Jules
quelle