Правила кейса зависят от культуры. Вы хотите язык программирования, в котором переменная i
равна , иногда считается такой же, как переменная I
, а иногда это разные переменные? (Кстати, это не выдуманный пример. На турецком языке I
- это , а не в верхнем регистре i
.
Честно говоря, это довольно просто. Вы хотите, чтобы компилятор исправил вас, когда вы делаете опечатку, или вы хотите, чтобы он угадал, что вы имели в виду? Последнее приводит к ошибкам, как вы узнали. В.Б. предполагает, «о, вы, вероятно, имели в виду то же самое, это нормально, мы вас не остановим», и XML воспринял вас буквально.
Ваша ошибка возникла не из-за плохой чувствительности к регистру, а из-за плохой чувствительности. Произвольно изменяющийся случай может в лучшем случае не вызывать проблем, а в худшем - ошибки. Предположим наихудшее и будьте согласны с вашим делом. Это, кстати, то, что регистрозависимые языки заставляют вас делать. Независимо от того, чувствительны ли ваши инструменты к регистру, программист должен учитывать регистр. Чувствительность к регистру избавит вас от многих проблем, если в мире есть как нечувствительные, так и чувствительные инструменты. Если бы мы могли переделать мир так, чтобы все не учитывало регистр, многие причины в пользу чувствительности исчезли бы. но мы не можем.
Небольшое примечание:
Во многих языках обычно присваивают переменным и типам одинаковые имена, но с разной заглавной буквы:
Foo foo; // declare a variable foo of type Foo
Конечно, вы можете утверждать, что «вы не должны этого делать», но это удобно, и оно сразу же сообщает читателю, какой тип имеет переменная. Это позволяет нам создавать класс Log и объект журнала. И поскольку целью этого объекта является регистрация, название довольно очевидно.
И последний момент для рассмотрения:
Дело имеет значение на реальных языках. Слово, начинающееся с верхнего регистра, отличается от того же, но с начального нижнего регистра. Слово "мир" не является правильным на английском языке. Информация закодирована в корпусе, что облегчает чтение текста. Это говорит нам, когда мы встречаем имя, например, или когда начинается предложение, что удобно. Разрешение людям игнорировать правила использования текста затрудняет чтение текста. А поскольку код, как правило, должен быть написан максимально читабельно, почему бы нам не сделать то же самое в программировании? Разрешить кейс для кодирования важной информации. Во многих языках Foo
является типом, а foo
является переменной. Это важная информация. Я хочу знать это, когда я программирую. Если я увижу функцию с именем «Getage», мне будет интересно, если это английское слово, которое я никогда раньше не слышал. Но когда я вижу «GetAge», я сразу понимаю, что его следует читать как слово «Get», за которым следует слово «Age».
Кстати, здесь - хороший пример забавных сюрпризов, с которыми вы можете столкнуться в случае чувствительных языков.