I linguaggi di programmazione dovrebbero essere case-sensitive, period. Le persone possono adattarsi a questo molto facilmente: devono semplicemente ricordare di lavorare principalmente in minuscolo e di prestare attenzione agli identificatori con maiuscole o minuscole nelle API esistenti.
Una volta sembrava ovvio rendere le lingue insensibili alle maiuscole. Questo perché la minuscola non era disponibile su tutti i sistemi di elaborazione e i relativi dispositivi I / O (tastiere, stampanti e dispositivi di visualizzazione). Le implementazioni linguistiche di programmazione dovevano accettare programmi scritti in maiuscolo, poiché solo quello poteva essere visualizzato o stampato. E per questo dovevano essere insensibili alle maiuscole e minuscole, perché accettare maiuscole e minuscole e essere case sensitive allo stesso tempo significa rifiutare le minuscole. La minuscola era qualcosa che i programmatori volevano, ma non poteva sempre avere. Nessuno voleva davvero lavorare con i programmi che urlavano in maiuscolo; era solo una limitazione hardware.
Da un po 'di tempo, era comune persino fare piegare il caso nei terminali. Se un terminale poteva visualizzare solo lettere maiuscole, ma si doveva accedere a un sistema informatico che supportava lettere maiuscole e minuscole, il terminale avrebbe piegato la lettera minuscola alla maiuscola. Pensi che sia stato tanto tempo fa? "Come Apple II, Apple II Plus non aveva funzionalità minuscole." (http://en.wikipedia.org/wiki/Apple_II_Plus) Quando gli utenti dei primi computer Apple componevano un BBS che aveva contenuto di maiuscole e minuscole, l'emulatore di terminale (o host) ha dovuto piegare tutto in maiuscolo. I messaggi scritti in maiuscolo erano comuni nelle bacheche in quei giorni. Questa funzionalità è ancora presente nei sistemi operativi di tipo Unix, come il kernel Linux. Ad esempio, digita stty olcuc
al prompt della shell. La disciplina della linea tty Unix può mappare minuscole a maiuscole sull'output e può mappare lettere maiuscole e minuscole su input. Ciò ti consente di lavorare in un linguaggio di programmazione in minuscolo, su un terminale che non ha maiuscole.
L'insensibilità alle maiuscole / minuscole è un concetto obsoleto di un'era dei computer passati che non funziona molto bene nel mondo moderno dell'informatica internazionalizzata. Lo estendi in altre lingue? Che ne dici di francese: consideri È ed è equivalente? O giapponese? Consideri hiragana e katakana solo come casi, in modo che フ ァ イ ル e ふ ぁ い る siano identici? Il supporto per tale follia complicherà notevolmente il tuo analizzatore lessicale, che dovrà avere mappe di equivalenza del caso per l'intero spazio Unicode.
Si noti che la matematica è case sensitive. Per esempio, il sigma maiuscolo potrebbe denotare la somma, mentre il sigma minuscolo denota qualcos'altro, come la deviazione standard.
Questo può accadere nella stessa formula senza creare alcuna difficoltà. (Il linguaggio di programmazione sarà Σ e σ equivalente?)
L'ortografia inglese è sensibile. Ad esempio, molti nomi propri corrispondono a nomi ordinari o anche ad altre parti del discorso. "may" è un verbo, ma "May" è un mese o il nome di una donna. Inoltre, se un acronimo o un'abbreviazione è scritto in minuscolo, può essere fonte di confusione. SAT sta per test attitudinale scolastico, mentre "sat" è il participio passato di "sit". Le persone intelligenti prestano attenzione ai dettagli e capitalizzano correttamente.
Fondamentalmente, ogni nuovo linguaggio di programmazione creato dal 1985 che non fa distinzione tra maiuscole e minuscole è PER COLORO CHE NON HANNO ANCORA MAIL NELLE E-MAIL E SUGGERIMENTI SENZA UN SECONDO PENSIERO.
Che cosa succede se la tua lingua viene mai utilizzata come target di generazione del codice per tradurre il codice in un'altra lingua e che l'altra lingua è sensibile al maiuscolo e al minuscolo? Dovrai in qualche modo trasformare tutti i nomi per catturare la distinzione. (Quindi affermare che questa non è una decisione tecnica, e solo questione delle preferenze emotive del pubblico target, è ridicolo.)
Guarda i fastidiosi problemi causati dalla gestione dei casi in Windows, quando i file vengono importati da un altro sistema operativo. Questo è un problema tecnico. I file system con maiuscole e minuscole hanno un problema con i dati estranei che quelli con distinzione tra maiuscole e minuscole non lo fanno.
Common Lisp ha trovato l'approccio ideale: i nomi dei simboli fanno distinzione tra maiuscole e minuscole, ma quando i token vengono letti, vengono piegati in maiuscolo. Ciò significa che i token foo
, fOO
, FOO
e Foo
indicano tutti lo stesso simbolo: il simbolo il cui nome è memorizzato come stringa di caratteri "FOO"
. Inoltre, questo comportamento è solo la configurazione predefinita della tabella di lettura. Il lettore può piegare le lettere in maiuscolo, in minuscolo, invertire la custodia o conservarla. Le ultime due scelte danno origine a un dialetto case-sensitive. In questo modo, gli utenti hanno la massima flessibilità.