Seems like there are two separate things in this thread. * One, some people don't want _ to be ignored, * Two, some people don't like case insensitivity.
In my _opinion_ case insensitivity is better. > What are the pros and what are the cons of 100% matching identifiers. I do > not see many cons besides some fuzzy "freedom of choice" feeling. Personally I think treating fooBar and foobar as different is a source of trouble, tempting people to make semantically identical names with different cases because, say, they like the name but a library is using it. Ideally, it'd be better if the name was more explicit to it's meaning and source, and I feel CI encourages this. > identical word highlighting This is a potential pitfall, but shouldn't we be aiming for the same style in a module? > If that same was: isPromotionModifed, is_Promotion_Modifed, > is_PromotionModifed, is_promotion_modifed, ... There is no way i will search > for all occurrences. Let alone potentially find them. I will not find all > occurrences or will have a regex search that is so broad, that the results > will include more variables then needed. There is the nimgrep tool for this and Aporia uses it for search, but of course it isn't in common editors (I use VSCode these days). On the other hand, how do people feel about Google being case insensitive when searching for code stuff? I'd argue CI languages are more likely to get concise hits. > To me it looks more or less like a features that can be great for single > personal development but a total disaster in a team. Only if a standard set > of rules can be applied, then it might be more useful in a team. To be fair, I feel like the same style complaints stuff applies to CI & CS with non-standard naming conventions, with similar pros and cons for both sides. If anything, at least in Nim you can use a library written in a weird style in your own style standard if you wish, instead of forcing you to mix styles. I dunno, everyone talks about the 'problems' but honestly it just seems like the problems are present in CI and CS languages, just manifest in different ways and are ultimately more team management issues than coding issues. For example, GL_INT / GLint is a problem - I mean, IIRC doesn't one represent an int type and the other an enum? Is that sensible naming? The source of this particular problem is the library, not CS/CI/_. I just think they're named badly and are ambiguous about what they really are. Case sensitivity might solve ambiguity, but doesn't tell you wtf you're actually working with.