Мови програмування повинні залежно від регістру та періоду. Люди можуть дуже легко налаштуватись на це: їм просто потрібно пам’ятати, що вони працюють в основному в нижньому регістрі та стежать за ідентифікаторами змішаного регістру або з усіма кришками в існуючих API.
Колись здавалося очевидним зробити мови беззахисними. Це пояснюється тим, що в усіх обчислювальних системах та на їх пристроях вводу / виводу (клавіатури, принтери та пристрої відображення) були доступні нижчі регістри. Реалізація мови програмування повинна була приймати програми, написані у верхньому регістрі, оскільки лише вони могли відображатися чи друкуватися. І для цього вони повинні були бути нечутливими до регістру, тому що прийняти верхній регістр та бути чутливим до регістру одночасно означає відхилити нижню регістр. Нижній регістр - це те, чого хотіли програмісти, але не завжди могли. Ніхто не дуже хотів працювати з програмами, які кричали у верхньому регістрі; це було лише апаратне обмеження.
Певний час було звичайно навіть робити складання корпусів у терміналах. Якщо термінал міг відображати лише верхній регістр, але вам довелося увійти в обчислювальну систему, що підтримує верхній і нижній регістри, термінал перекине нижній регістр на верхній регістр. Думаєте, це було так давно? "Як і Apple II, Apple II Plus не мав малих функцій". (http://en.wikipedia.org/wiki/Apple_II_Plus) Коли користувачі ранніх комп'ютерів Apple набирали сигнал BBS, який мав змішаний регістр, емулятор термінала (або хост) повинен був перенести це на верхній регістр. Повідомлення, написані у всіх шапках, були поширеними на дошках оголошень у ті часи. Ця функціональність все ще знаходиться в операційних системах, схожих на Unix, як ядро Linux. Наприклад, введіть stty olcuc
у вашому запиті оболонки.У дисципліні Unix tty line може відображати нижній регістр на верхній на виході, а він може відображати верхній регістр на нижній регістр на нижньому. Це дозволяє працювати мовою програмування малої літери, на терміналі, що не має нижнього регістру.
Нечутливість до випадків - це застаріла концепція минулої епохи комп'ютера, яка не дуже добре працює в сучасному світі інтернаціоналізованих обчислень. Ви поширюєте це на інші мови? Як щодо французької: чи вважаєте ви equivalent і è рівнозначними? Або японці? Чи вважаєте ви хірагану та катакана просто випадками, так що フ ァ イ ル і ふ ぁ い る є однаковим ідентифікатором? Підтримка такої дурості значно ускладнить ваш лексичний аналізатор, який повинен мати карти еквівалентності випадків для всього простору Unicode.
Зауважте, що математика відрізняється від регістру. Наприклад, сигма верхнього регістру може позначати підсумовування, тоді як сигма в нижньому регістрі позначає щось інше, наприклад стандартне відхилення. Це може відбуватися в одній формулі, не створюючи труднощів. (Чи будуть мови програмування еквівалентними Σ і σ?)
Англійська орфографія чутлива. Наприклад, багатьом власним іменникам відповідають звичайні іменники або навіть інші частини мови. "може" - дієслово, але "травень" - місяць, або ім'я жінки. Більше того, якщо абревіатура або абревіатура пишеться в малому регістрі, це може бути заплутано. SAT означає тест на схоластичну працездатність, тоді як "sat" є минулим дієприкметником "sit". Розумні люди звертають увагу на деталі та правильно використовують їх.
В основному, будь-яка нова мова програмування, створена з 1985 року, що не відрізняється від регістру, - це для тих, хто все-таки просунеться в електронній пошті та розміщеннях без другої думки.
Що робити, якщо ваша мова коли-небудь використовується як цільове створення коду для перекладу коду на іншу мову, а інша мова має чутливі регістри? Вам доведеться якось перетворити всі імена, щоб захопити відмінність. (Отже, стверджувати, що це не технічне рішення, а лише питання емоційних уподобань цільової аудиторії, є смішним.)
Подивіться на набридливі проблеми, спричинені обробкою справ у Windows, коли файли імпортуються з іншої операційної системи. Це технічне питання. Файлові системи, що враховують регістри, мають проблеми з іноземними даними, які не чутливі до регістру.
Звичайний Лісп вдався до ідеального підходу: назви символів залежать від регістру, але коли лексеми читаються, вони складаються у верхній регістр. Це означає , що маркери foo
, fOO
, FOO
і Foo
все позначають той же символ: символ, ім'я якого зберігається в вигляді рядка символів "FOO"
. Крім того, така поведінка є лише конфігурацією таблиці зчитування за замовчуванням. Читач може скласти літери до великого регістру, до нижнього регістру, перевернути регістр або зберегти його. Останні два варіанти викликають чутливий до регістру діалект. Таким чином, користувачі мають максимальну гнучкість.