Хоча складання корпусів в англійській мові досить тривіально, в інших інших мовах це набагато менше. Якщо німецький програміст використовує ß
ім’я змінної, що ви збираєтесь вважати великим регістром? Просто FYI, "ß" використовується лише в нижньому регістрі. Ото, «сс» є еквівалентом - Ви б компілятор зобов'язаний зіставити їх? Коли ви потрапляєте в Unicode, у вас виникають ще цікавіші проблеми, наприклад, символи з попередньо складеними діакритичними позначками порівняно з окремими поєднаннями діакритики. Тоді ви перейдете до деяких арабських сценаріїв, з трьома окремими формами багатьох букв, а не лише двома.
У похмурі століття більшість мов програмування були нечутливими до випадків, коли вони майже не потрібні. Наприклад, Паскаль запустився в мейнфрейми Control Data, які використовували лише шість біт на символ (всього 64 коди). Більшість таких машин використовували набір символів "CDC Scientific", який містив лише великі літери. Ви можете переключитися на інші набори символів, але більшість мали великі або малі регістри, але не обидва - але використовували однакові коди для обох. Те саме стосувалося стародавніх кодів Бодо і таких, які вважалися стандартними в перші дні COBOL, FORTRAN, BASIC тощо. До того часу, коли більш доступне обладнання було широко доступне, їх чутливість до справ була настільки ретельно вбудована, що змінити його було неможливо .
З часом реальна складність нечутливості до випадків стала більш очевидною, і мовні дизайнери здебільшого вирішили ("зрозуміли", мабуть, більш точний термін), що коли / якщо люди дійсно хочуть нечутливості до справи, то краще обробляти допоміжні інструменти ніж у самій мові.
Принаймні ІМО, компілятор повинен приймати дані точно так, як це було представлено, а не вирішувати, що "ви це написали, але я припускаю, що ви справді мали на увазі щось інше". Якщо ви хочете, щоб переклади відбувалися, вам краще робити їх окремо, за допомогою інструментів, створених для цього.