Yes this get's discussed a lot. And yes there are problems: * Non-conflicting names in C libraries become conflicting names in nim wrappers. See OpenGl wrapper for example. (No `cGL_INT` is not a sane name) * common search tools such as [grep](https://www.gnu.org/software/grep/manual/grep.html) and [ag](https://github.com/ggreer/the_silver_searcher) can deal with case insensitive search, but not with nim style insensitive search. Also the search bar build into github doesn't work anymore, or search within editors. And I am sorry to say that [nimgrep](http://forum.nim-lang.org///nim-lang.org/docs/nimgrep.html) does not solve the problem in the first place. * **warnig half knowledge** One more level of indirection to represent nim identifiers. When they are case sensitive like in c, they could be just strings, there would not be the necessity of the `NimIdent` type * It's just different to any other programming language (not necessarily a disadvantage, but there should be at least a good reason for it)
As said, this all has been discussed already a lot, and maybe that is a good reason to honsetly reevaluate this topic, because a lot of people seem to dislike this feature. I do not like the style insensitve, and I don't think I ever will. But I can live with it for now, and I think when I am working longer in Nim I will write a linting tool that gives me a warning whenever I break case sensitive identifier equality (possibly with auto fixes). I already had a bug in OpenGl code, where I tried to pass the constant `GL_INT` to an opengl call not knowing that in the background this identifier was resolved as the type `GLint`. This bug did puzzle me a bit until I found out about `cGL_INT`. But of course this problem can also be addressed by better error messages, me reading error messages better, and better documentation on the nim opengl package.