Dlaczego XMLHttpRequest nie wydaje się przestrzegać konwencji nazewnictwa?

28

Ostatnio pracuję z obiektem XMLHttpRequest w JavaScript i nie mogłem nie zauważyć, że obudowa tej nazwy nie ma sensu. Dlaczego „XML” jest pisany wielkimi literami, a „HTTP” nie? Oba są akronimami!

Z pewnością bardziej sensowne byłoby, aby nazwa była jedną z następujących:

  • XmlHttpRequest (PascalCase, najlepsza praktyka dla nazw klas w JavaScript)
  • xmlHttpRequest (camelCase, również powszechne, choć nie dla klas)
  • XMLHTTPRequest (caps-for- acronyms , rzadko używane w programowaniu?)

Jestem pewien, że musi być jakiś powód i nie chciałbym myśleć, że teraz jest on osadzony w kamieniu tylko dlatego, że nikt w tym momencie nie kwestionował tego. Czy istnieje inna konwencja nazewnictwa, o której nie wiem?

Alec
źródło
9
Sidenote: Java ma bardzo podobną niespójność nazewnictwa: im HttpURLConnection.
Joachim Sauer
6
Sidenote # 2: Przynajmniej te są poprawnie napisane, w przeciwieństwie do HTTP_REFERERnagłówka ...
OnoSendai,
3
Podejrzewam, że należy to do kategorii „Niektórzy deweloperzy popełnili błąd i teraz nie możemy go naprawić”, ale prawdopodobnie na świecie jest tylko jedna osoba, która zna właściwą odpowiedź.
Martin Brown,
1
Ale nie zastanawiasz się, dlaczego w ogóle ma w nazwie XML (a nawet HTTP)?
Stop Harming Monica

Odpowiedzi:

15

Co ciekawe, Microsoft nazwał go IXMLHTTPRequestpo raz pierwszy, gdy został dodany do biblioteki MSXML .

To Mozilla użyła tej nazwy, XMLHttpRequestkiedy dodała koncepcję do Gecko, wdrażając pomysł naśladowania interfejsu MS. Od tego czasu stał się standardem defacto, wiążąc wszystkie inne implementacje z decyzją Mozilli.

Musiałbyś iść spelunkować w Bugzilli Mozilli, aby zobaczyć, czy możesz znaleźć jakieś uzasadnienie zmiany kapsli, ale podejrzewam, że nie zastanawiałem się zbyt wiele, a dolna ttpczęść części jest przypadkowa.

Potwierdza to błędna pisownia interfejsu Microsoft w definicji interfejsu nsIXMLHttpRequest (najwcześniejsza wersja w repozytorium Mozilla Mercurial) :

XMLHttpRequest Mozilli jest wzorowany na obiekcie IXMLHttpRequest Microsoftu. Celem było jak najlepsze dopasowanie wersji Mozilli do wersji Microsoftu, ale z pewnością będą pewne różnice.

Martijn Pieters
źródło
Ach, rozumiem, więc jest to celowe, o ile opiera się na wcześniejszym wystąpieniu pisowni. Nadal mi się nie podoba - ale przynajmniej rozumiem, jak to się stało. Dzięki za doskonałą odpowiedź.
Alec,
6
Zauważ, że chociaż XML i URL są zwykle wielkimi literami, odwołania do małych liter http są wszechobecne w HTML. Tak więc XMLHttpRequestmogą być uważane za wielbłąda obudowy połączonych identyfikatorów.
hardmath
2
Jeśli cofniesz się do pierwszej wersji CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… Tak to jest. Pierwotnym autorem był Vidur Apparao, więc może ktoś może go wyśledzić (obecnie jest CTO w Agari: agari.com/team/vidur-apparao ) i zapytać go. Niestety nie ma w tym nic z bugzilli, w czasach Netscape nie byli świetni w zgłaszaniu błędów do śledzenia pracy.
Ted Mielczarek,
4

Niektóre wytyczne dotyczące nazewnictwa rozróżniają akronimy „krótkie” i „długie”. Na przykład przewodnik po stylu kodowania środowiska wykonawczego Microsoft .Net określa, że ​​krótkie akronimy powinny być pisane wielkimi literami, podczas gdy długie akronimy powinny zawierać tylko pierwszą literę. Ich próg dla długiego akronimu to 3 litery, więc faworyzuje „XmlHttpRequest”, jednak nie jest nierozsądne sądzić, że niektórzy ludzie mogą stosować podobną regułę z 4 znakami jako próg.

Przejrzałem stare kopie przewodnika po stylu mozilla.org i żaden nie wydaje się precyzować akronimów, ale możliwe jest, że zrobił to starszy przewodnik Netscape lub że programista zastosował regułę, którą wybrał gdzie indziej.

Jules
źródło