Języki programowania powinny rozróżniać małe i wielkie litery, kropka. Ludzie mogą bardzo łatwo się do tego dostosować: po prostu muszą pamiętać, aby pracować głównie małymi literami i uważać na identyfikatory mieszanych lub wielkich liter w istniejących interfejsach API.
Kiedyś wydawało się oczywiste, że w językach nie jest rozróżniana wielkość liter. Wynika to z faktu, że małe litery nie były dostępne we wszystkich systemach komputerowych i ich urządzeniach we / wy (klawiatury, drukarki i urządzenia wyświetlające). Implementacje języka programowania musiały akceptować programy pisane wielkimi literami, ponieważ tylko te mogły być wyświetlane lub drukowane. W tym celu musieli rozróżniać małe i wielkie litery, ponieważ akceptacja wielkich liter i rozróżnianie wielkich i małych liter oznacza jednocześnie odrzucanie małych liter. Małe litery były czymś, czego chcieli programiści, ale nie zawsze. Nikt tak naprawdę nie chciał pracować z programami, które krzyczały wielkimi literami; to było tylko ograniczenie sprzętowe.
Przez pewien czas często składano skrzynki w terminalach. Gdyby terminal mógł wyświetlać tylko wielkie litery, ale trzeba było zalogować się do systemu komputerowego obsługującego duże i małe litery, terminal składałby małe litery na wielkie. Myślisz, że to było tak dawno temu? „Podobnie jak Apple II, Apple II Plus nie miał funkcji małych liter”. (http://en.wikipedia.org/wiki/Apple_II_Plus) Gdy użytkownicy wczesnych komputerów Apple wybrali numer BBS, który zawierał małe i duże litery, emulator terminala (lub host) musiał to wszystko złożyć na wielkie litery. Wiadomości pisane wielkimi literami były wówczas popularne na tablicach ogłoszeń. Ta funkcjonalność jest nadal dostępna w systemach operacyjnych typu Unix, takich jak jądro Linux. Na przykład wpisz stty olcuc
w wierszu polecenia powłoki.Dyscyplina linii tty w systemie Unix może odwzorowywać małe litery na duże na wyjściu i może mapować duże litery na małe na wejściu. Pozwala to na pracę w języku programowania małymi literami na terminalu, który nie ma małych liter.
Niewrażliwość na wielkość liter to przestarzała koncepcja z minionej epoki komputerów, która nie działa zbyt dobrze we współczesnym świecie internacjonalizacji komputerów. Czy rozszerzasz to na inne języki? Co powiesz na francuski: czy uważasz È i è za równoważne? Czy japoński? Czy uważasz hiragana i katakana za zwykłe przypadki, tak że フ ァ イ ル i ふ ぁ い る są tym samym identyfikatorem? Obsługa takiego szaleństwa znacznie skomplikuje twój analizator leksykalny, który będzie musiał mieć mapy równoważności wielkości liter dla całej przestrzeni Unicode.
Pamiętaj, że matematyka rozróżnia małe i wielkie litery. Na przykład sigma z wielkich liter może oznaczać sumowanie, podczas gdy sigma z małych liter oznacza coś innego, na przykład odchylenie standardowe. Może się to zdarzyć w tej samej formule bez żadnych trudności. (Czy język programowania sprawi, że Σ i σ będą równoważne?)
Angielska ortografia jest wrażliwa. Na przykład wiele właściwych rzeczowników odpowiada zwykłym rzeczownikom lub nawet innym częściom mowy. „may” jest czasownikiem, ale „maj” to miesiąc lub imię kobiety. Ponadto, jeśli akronim lub skrót jest zapisany małymi literami, może to być mylące. SAT oznacza scholastyczny test umiejętności, podczas gdy „sat” jest imiesłowem przeszłym słowa „sit”. Inteligentni ludzie zwracają uwagę na szczegóły i odpowiednio wykorzystują duże litery.
Zasadniczo, każdy nowy język programowania utworzony od 1985 r., Bez rozróżniania wielkości liter, jest DLA TYCH, KTÓRZY WCIĄŻ SĄ W E-MAILACH I OGŁOSZENIACH BEZ DRUGIEJ MYŚLI.
Co się stanie, jeśli Twój język będzie kiedykolwiek używany jako cel generowania kodu do tłumaczenia kodu na inny język, a w tym języku rozróżniana jest wielkość liter? Będziesz musiał jakoś przekształcić wszystkie nazwy, aby uchwycić to rozróżnienie. (Twierdzenie, że nie jest to decyzja techniczna, a jedynie kwestia preferencji emocjonalnych docelowych odbiorców, jest śmieszne).
Spójrz na irytujące problemy związane z obsługą spraw w systemie Windows, gdy pliki są importowane z innego systemu operacyjnego. To problem techniczny. Systemy plików z rozróżnianiem wielkości liter mają problem z danymi obcymi, które nie uwzględniają wielkości liter.
Common Lisp osiągnął idealne podejście: w nazwach symboli rozróżniana jest wielkość liter, ale po odczytaniu tokenów są one składane na wielkie litery. Oznacza to, że tokeny foo
, fOO
, FOO
i Foo
wszyscy mają takie samo znaczenie symboli: symbol, którego nazwa jest przechowywany jako ciąg znaków "FOO"
. Ponadto takie zachowanie jest tylko domyślną konfiguracją tabeli odczytu. Czytelnik może składać litery na wielkie, małe, odwracać lub zachowywać. Dwie ostatnie opcje powodują, że dialekt rozróżnia małe i wielkie litery. W ten sposób użytkownicy mają maksymalną elastyczność.