I recently stumbled upon the
non_uppercase_statics lint, and it made me wonder, what is the rationale behind this convention? The naming conventions call them SCREAMING_SNAKE_CASE, and I do find them screaming, often too screaming. Are statics so important that they need to be screaming? One could argue that it makes it easy to identify statics, but is there any value in that? We don’t use Hungarian notation either. Especially because variables are immutable by default, I think there is little distinction between regular immutable variables and static variables in practice. Uppercase might be useful for flags, though those are similar to enum variants, which use CamelCase.
The most obvious reason for all caps statics that I could think of, is that it is a convention in C.