I linguaggi di programmazione dovrebbero fare distinzione tra maiuscole e minuscole, punto. Le persone possono adattarsi a questo molto facilmente: devono semplicemente ricordarsi di lavorare principalmente in lettere minuscole e fare attenzione agli identificatori a maiuscole o minuscole nelle API esistenti.
Una volta sembrava ovvio rendere le lingue insensibili alle maiuscole. Questo perché le lettere minuscole non erano disponibili su tutti i sistemi di elaborazione e sui loro dispositivi I / O (tastiere, stampanti e dispositivi di visualizzazione). Le implementazioni del linguaggio di programmazione dovevano accettare programmi scritti in maiuscolo, poiché solo quello poteva essere visualizzato o stampato. E per questo dovevano fare distinzione tra maiuscole e minuscole, perché accettare maiuscole e allo stesso tempo fare distinzione tra maiuscole e minuscole. Le lettere minuscole erano qualcosa che i programmatori volevano, ma non potevano sempre avere. Nessuno voleva davvero lavorare con programmi che gridavano in maiuscolo; era solo una limitazione hardware.
Per un po ', era comune persino piegare i casi nei terminali. Se un terminale fosse in grado di visualizzare solo lettere maiuscole, ma è stato necessario accedere a un sistema di elaborazione che supporta le lettere maiuscole e minuscole, il terminale piegherebbe le lettere minuscole in maiuscole. Pensi che fosse tanto tempo fa? "Come l'Apple II, l'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 con contenuto in maiuscolo, l'emulatore di terminale (o host) doveva ripiegare tutto in maiuscolo. A quei tempi i messaggi scritti in maiuscolo erano comuni nelle bacheche. Questa funzionalità si trova ancora nei sistemi operativi simili a Unix, come il kernel Linux. Ad esempio, digitare stty olcuc
al prompt della shell.La disciplina della linea tty Unix può mappare lettere minuscole in maiuscolo sull'output e può mappare lettere maiuscole in maiuscolo sull'input. Ciò consente di lavorare con un linguaggio di programmazione minuscolo, su un terminale che non ha lettere minuscole.
L'insensibilità alle maiuscole è un concetto obsoleto di un'era passata del computer che non funziona molto bene nel moderno mondo dell'informatica internazionalizzata. Lo estendi in altre lingue? Che ne dici del francese: consideri È ed è equivalente? O giapponese? Consideri hiragana e katakana solo casi, in modo che フ ァ イ ル e ふ ぁ い る siano lo stesso identificatore? Il supporto per tale follia complicherà notevolmente il tuo analizzatore lessicale, che dovrà avere mappe di equivalenza dei casi per l'intero spazio Unicode.
Nota che la matematica fa distinzione tra maiuscole e minuscole. Ad esempio, il sigma in maiuscolo potrebbe indicare la somma, mentre il sigma in minuscolo indica qualcos'altro, come la deviazione standard. Ciò può verificarsi nella stessa formula senza creare alcuna difficoltà. (Il linguaggio di programmazione renderà Σ e σ equivalenti?)
L'ortografia inglese è sensibile. Ad esempio, molti nomi propri corrispondono ai 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 è l'acronimo di test scolastico attitudinale, mentre "sat" è il participio passato di "sit". Le persone intelligenti prestano attenzione ai dettagli e capitalizzano correttamente.
Fondamentalmente, qualsiasi nuovo linguaggio di programmazione creato dal 1985, che non fa distinzione tra maiuscole e minuscole, è PER QUELLI CHE TI SONO ANCORA DOVUTI NELLE E-MAIL E NELLE POSTE SENZA UN SECONDO PENSIERO.
Che cosa succede se la tua lingua viene mai utilizzata come obiettivo di generazione del codice per tradurre il codice in un'altra lingua e tale altra lingua fa distinzione tra maiuscole e minuscole? Dovrai in qualche modo trasformare tutti i nomi per catturare la distinzione. (Quindi affermare che questa non è una decisione tecnica, e solo una questione di 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 distinzione tra maiuscole e minuscole hanno un problema con i dati esterni che non fanno distinzione tra maiuscole e minuscole.
Il Lisp comune ha colpito 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
tutto denotano lo stesso simbolo: il simbolo 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 il caso o conservarlo. Le ultime due scelte danno origine a un dialetto con distinzione tra maiuscole e minuscole. In questo modo, gli utenti hanno la massima flessibilità.