Bahasa pemrograman harus case-sensitive, titik. Orang-orang dapat menyesuaikan diri dengan ini dengan mudah: mereka hanya harus ingat untuk bekerja sebagian besar dalam huruf kecil, dan harus waspada terhadap pengidentifikasi huruf besar atau huruf besar semua di API yang ada.
Dulu tampak jelas membuat bahasa tidak peka huruf besar-kecil. Ini karena huruf kecil tidak tersedia pada semua sistem komputasi dan perangkat I / O mereka (keyboard, printer, dan perangkat tampilan). Pemrograman implementasi bahasa harus menerima program yang ditulis dalam huruf besar, karena hanya itu yang dapat ditampilkan atau dicetak. Dan untuk itu mereka harus peka terhadap huruf besar-kecil, karena menerima huruf besar dan peka huruf besar-kecil berarti menolak huruf kecil. Huruf kecil adalah sesuatu yang diinginkan programmer, tetapi tidak selalu bisa. Tidak ada yang benar-benar ingin bekerja dengan program yang berteriak dalam huruf besar; itu hanya batasan perangkat keras.
Untuk sementara, adalah hal yang umum untuk bahkan melakukan pelipatan case di terminal. Jika terminal hanya dapat menampilkan huruf besar, tetapi Anda harus masuk ke sistem komputasi yang mendukung huruf besar dan kecil, terminal akan melipat huruf kecil ke huruf besar. Pikir ini sudah lama sekali? "Seperti Apple II, Apple II Plus tidak memiliki fungsi huruf kecil." (http://en.wikipedia.org/wiki/Apple_II_Plus) Ketika pengguna komputer Apple awal melakukan panggilan ke BBS yang memiliki konten campuran, emulator terminal (atau host) harus melipat semuanya ke huruf besar. Pesan yang ditulis dalam semua huruf adalah hal biasa di papan buletin pada masa itu. Fungsi ini masih ditemukan di sistem operasi mirip Unix, seperti kernel Linux. Misalnya, ketikstty olcuc
prompt shell Anda.Disiplin garis tty Unix dapat memetakan huruf kecil ke atas pada output, dan itu dapat memetakan huruf besar untuk lebih rendah pada input. Ini memungkinkan Anda untuk bekerja dalam bahasa pemrograman huruf kecil, pada terminal yang tidak memiliki huruf kecil.
Ketidakpekaan case adalah konsep yang ketinggalan jaman dari era komputer masa lalu yang tidak berfungsi dengan baik di dunia modern dari komputasi internasional. Apakah Anda memperluas itu ke bahasa lain? Bagaimana dengan bahasa Prancis: apakah Anda menganggap È dan è setara? Atau Jepang? Apakah Anda menganggap hiragana dan katakana hanya sebagai kasus, sehingga フ ァ イ ル dan ふ ぁ い る adalah pengidentifikasi yang sama? Dukungan untuk kebodohan semacam itu akan sangat menyulitkan penganalisa leksikal Anda, yang harus memiliki peta kesetaraan kasus untuk seluruh ruang Unicode.
Perhatikan bahwa matematika peka terhadap huruf besar-kecil. Misalnya, sigma huruf besar mungkin menunjukkan penjumlahan, sedangkan sigma huruf kecil menunjukkan sesuatu yang lain, seperti standar deviasi. Ini dapat terjadi dalam formula yang sama tanpa membuat kesulitan. (Apakah bahasa pemrograman akan membuat Σ dan σ setara?)
Ortografi bahasa Inggris sensitif. Misalnya, banyak kata benda yang sesuai dengan kata benda biasa atau bahkan bagian lain dari pembicaraan. "mungkin" adalah kata kerja, tetapi "Mei" adalah satu bulan, atau nama wanita. Selain itu, jika akronim atau singkatan ditulis dalam huruf kecil, itu bisa membingungkan. SAT adalah singkatan dari tes bakat skolastik, sedangkan "sat" adalah partisip masa lalu dari "sat". Orang cerdas memperhatikan detail dan memanfaatkan dengan baik.
Pada dasarnya, bahasa pemrograman baru apa pun yang dibuat sejak 1985 yang tidak peka terhadap huruf besar adalah UNTUK MEREKA YANG MASIH HARUS DI E-MAILS DAN POSING TANPA PIKIRAN KEDUA.
Bagaimana jika bahasa Anda pernah digunakan sebagai target pembuatan kode untuk menerjemahkan kode dalam bahasa lain, dan bahasa lain itu peka terhadap huruf besar-kecil? Anda harus entah bagaimana mengubah semua nama untuk menangkap perbedaannya. (Jadi untuk menegaskan bahwa ini bukan keputusan teknis, dan hanya masalah preferensi emosional dari audiens target, konyol.)
Lihatlah masalah menjengkelkan yang disebabkan oleh penanganan kasus di Windows, saat file diimpor dari sistem operasi lain. Itu masalah teknis. Sistem file case sensitif memiliki masalah dengan data asing yang tidak case-sensitive.
Lisp umum telah mencapai pendekatan yang ideal: nama simbol peka huruf besar-kecil, tetapi ketika token dibaca, mereka dilipat ke huruf besar. Ini berarti bahwa token foo
, fOO
, FOO
dan Foo
semua menyatakan simbol yang sama: simbol yang namanya disimpan sebagai string karakter "FOO"
. Selanjutnya, perilaku ini hanya konfigurasi tabel baca default. Pembaca dapat melipat huruf ke huruf besar, huruf kecil, membalikkan huruf, atau menyimpannya. Dua pilihan terakhir memunculkan dialek yang peka terhadap huruf besar-kecil. Dengan cara ini, pengguna memiliki fleksibilitas maksimum.