Учиться всегда проще на примере, так что вот так:
C # (чувствителен к регистру, но может использоваться в VB.NET, который не учитывает регистр):
CONSTANT_NAME
IInterfaceName // Uses I prefix in all case sensitive and insensitive languages
ClassName // Readable in both case sensitive and insensitive languages
_classMember // sometimes m_classMember or just classMember
DoSomething(someParam) // Method with action name, params can be _someParam
PropertyName // Same style in case sensitive and insensitive languages
localVariable // Never using prefix
Java и JS используют стиль, похожий на C #, но методы / функции / события объявляются как переменные doSomething, onEvent.
ObjectPascal (Delphi и Lazarus / FPC нечувствительны к регистру, как ADA и VB.NET)
CConstantName // One can use Def or no prefix, not a standard
IInterfaceName
TClassName // Non-atomic types/classes have T prefix e.g. TStructRecordName
PSomePointer // Pointers have types, safer low level stuff
FClassFieldMember // F means Field member similar to m
DoSomething(Parameter) // Older code uses prefix A for parameters instead
PropertyName
LLocalVariable // Older code uses prefix for parameters not local vars
Использование только OneCase и префиксов для каждого типа имеет смысл на всех языках. Даже языки, которые начинаются без префиксов, имеют более новые конструкции, такие как интерфейсы, которые не зависят от регистра, но вместо этого используют префикс.
Так что на самом деле не важно, чувствителен ли язык к регистру или нет. Новые языки были добавлены в регистрозависимые языки, которые были слишком запутанными, чтобы их можно было выразить одним регистром, и требовали использовать префикс.
Поскольку языки, чувствительные к регистру, начали использовать префиксы, разумно прекратить использовать регистр с тем же именем идентификатора someIdentifier SomeIdentifier SOME_IDENTIFIER, ISomeIdentifier и использовать префиксы там, где это имеет смысл.
Рассмотрим эту проблему:
У вас есть член класса, называемый чем-то, параметр метода / функции, называемый чем-то, и локальная переменная, называемая чем-то. Какое условное обозначение можно использовать, чтобы легко отличить их?
Разве не проще просто использовать наиболее распространенный ConsistentCaseStyle везде и добавить префикс?
Поклонники нечувствительных к регистру языков заботятся о качестве кода, им нужен только один стиль. Иногда они принимают тот факт, что одна библиотека написана плохо, и используют строгий стиль, в то время как библиотека может не иметь стиля или плохого кода.
Как регистрозависимые, так и нечувствительные языки требуют строгой дисциплины, более логично везде иметь только один стиль. Было бы лучше, если бы у нас был язык, который использовал бы только StrictCase, один стиль везде и префиксы.
Существует много плохого кода на C, чувствительность к регистру не делает его читабельным, и вы ничего не можете с этим поделать. В случае нечувствительного к регистру языка вы можете применить хороший стиль в своем коде, не переписывая библиотеку.
На языке StrictCase, который еще не существует, весь код будет иметь достойное качество:)