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. 

Reply via email to