Mengapa XMLHttpRequest sepertinya tidak mengikuti konvensi penamaan?


28

Saya telah bekerja dengan objek XMLHttpRequest di JavaScript baru-baru ini, dan saya tidak bisa tidak memperhatikan bahwa casing dari nama ini tidak masuk akal. Mengapa 'XML' semuanya dalam huruf kapital sedangkan 'Http' tidak? Mereka berdua akronim!

Tentunya akan lebih masuk akal jika nama itu menjadi salah satu dari yang berikut:

  • XMLHttpRequest (PascalCase, praktek terbaik untuk nama kelas di JavaScript)
  • xmlHttpRequest ( camelCase , juga umum meskipun tidak untuk kelas)
  • XMLHTTPRequest (caps-for-akronim, jarang digunakan dalam pemrograman?)

Saya yakin pasti ada beberapa alasan dan saya benci untuk berpikir itu sekarang dibuat hanya karena tidak ada yang mempertanyakan ini pada saat itu. Apakah ada konvensi penamaan lain yang tidak saya sadari?


9
Sidenote: Java memiliki inkonsistensi penamaan yang sangat mirip: The HttpURLConnection.
Joachim Sauer

6
Sidenote # 2: Setidaknya itu dieja dengan benar, tidak seperti HTTP_REFERERheader ...
OnoSendai

3
Saya menduga ini termasuk dalam kategori "Beberapa pengembang melakukan kesalahan dan sekarang kami tidak dapat memperbaikinya" tetapi kemungkinan hanya ada satu orang di dunia yang mengetahui jawaban yang sebenarnya.
Martin Brown

1
Namun Anda tidak bertanya-tanya mengapa ada XML (atau memang HTTP) dalam nama di tempat pertama?
Stop Harming Monica

Jawaban:


15

Cukup menarik, Microsoft pertama kali menyebutnya IXMLHTTPRequestketika pertama kali ditambahkan ke perpustakaan MSXML .

Itu Mozilla yang menggunakan nama XMLHttpRequestketika menambahkan konsep ke Gecko, mengimplementasikan ide untuk meniru antarmuka MS. Sejak itu telah menjadi standar de facto, mengikat semua implementasi lain untuk keputusan Mozilla.

Anda harus melakukan spelunking di Mozilla Bugzilla untuk melihat apakah Anda dapat menemukan alasan perubahan tutup di sana, tetapi saya curiga tidak banyak pemikiran yang masuk ke dalamnya dan penurunan jumlah komponen ttptidak disengaja.

Ini dikuatkan oleh kesalahan ejaan antarmuka Microsoft di definisi antarmuka nsIXMLHttpRequest (revisi paling awal di repositori Mozilla Mercurial) :

XMLHttpRequest Mozilla dimodelkan setelah objek IXMLHttpRequest Microsoft. Tujuannya adalah membuat versi Mozilla cocok dengan versi Microsoft sedekat mungkin, tetapi pasti ada beberapa perbedaan.


Ah saya mengerti, jadi ini disengaja sejauh ini didasarkan pada contoh ejaan sebelumnya. Saya masih tidak suka - tapi setidaknya saya bisa mengerti bagaimana itu terjadi. Terima kasih atas jawaban yang bagus.
Alec

6
Perhatikan bahwa meskipun XML dan URL umumnya berbentuk huruf besar semua, referensi ke huruf kecil http ada di mana-mana dalam HTML. Jadi XMLHttpRequestdapat dipandang sebagai selubung unta dari pengidentifikasi gabungan.
hardmath

2
Jika Anda kembali ke revisi pertama di CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… Seperti itu. Penulis aslinya adalah Vidur Apparao, jadi mungkin seseorang dapat melacaknya (dia adalah CTO di Agari saat ini: agari.com/team/vidur-apparao ) dan bertanya kepadanya. Sayangnya tidak ada dalam bugzilla tentang ini, kembali pada hari-hari Netscape mereka tidak hebat tentang pengarsipan bug untuk melacak pekerjaan.
Ted Mielczarek

4

Beberapa pedoman penamaan membuat perbedaan antara singkatan "pendek" dan "panjang". Sebagai contoh, panduan gaya pengkodean untuk Microsoft .Net runtime menentukan bahwa akronim pendek harus dalam huruf besar sementara akronim panjang hanya harus memiliki huruf pertama dikapitalisasi. Ambang batas mereka untuk akronim panjang adalah 3 huruf, jadi akan lebih disukai "XmlHttpRequest", namun tidak masuk akal untuk berpikir beberapa orang mungkin menggunakan aturan yang sama dengan 4 karakter sebagai ambang.

Saya telah melihat salinan lama dari panduan gaya mozilla.org, dan sepertinya tidak ada yang menyebutkan apa pun tentang akronim, tetapi mungkin saja panduan Netscape yang lebih lama melakukannya, atau bahwa pengembang menerapkan aturan yang diambilnya di tempat lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.