4 ms·
Looks like it's still there in the manual: http://nim-lang.org/0.11.0/manual.html#lexical-analysis-identifier-equality http://nim-lang.org/0.11.0/manual.html#l
by krupan 12y ago
Looks like it's still there in the manual:
http://nim-lang.org/0.11.0/manual.html#lexical-analysis-identifier-equality http://nim-lang.org/0.11.0/manual.html#lexical-analysis-iden...
This just killed my excitement for this language. That's really surprising to me that they would choose to enforce indentation Python-style, but would then allow this kind ambiguity in naming.
grep and emacs isearch-forward are such great tools for quick code searching and this will break them. I guess text search (and replace) tools could grow nim-mode options, maybe. I don't know, can someone convince me this is a good idea?
- gtaylor 12y ago> I don't know, can someone convince me this is a good idea? That would be a pretty hard sell. Any convenience argument falls flat to me.
- bryanlarsen 12y agoSuppose you have MyVariable and my_variable in your code. Which is worse: them being the same variable or different variables? It's a pretty bad code smell either way. In my opinion it should be an error or at least a warning. I'm not a big fan of nim's behaviour, but I don't think it's any worse than what other languages do.
- wtetzner 12y agoYeah, I think it would make more sense to treat them as the same, but throw an error if they are spelled differently.
- krupan 12y ago"Which is worse: them being the same variable or different variables?" Them being the same is worse. I agree that both are pretty darn bad, but it's also pretty clear to me which is worse.
- tomp 12y ago> Suppose you have MyVariable and my_variable in your code. Which is worse: them being the same variable or different variables? That's the same as saying "`a` and `A` should be the same variable", i.e. complete case insensitivity. > It's a pretty bad code smell either way. Very much so. We shouldn't encourage it.
- dragonwriter 12y ago> Suppose you have MyVariable and my_variable in your code. Which is worse: them being the same variable or different variables? Having them be the same, by far. Having names with certain similarity be prohibited in the same scope is a bit excessively controlling but sensible. Allowing them but treating them as equivalent is just plain bad. If I named them differently then either: (1) I made a mistake, or (2) I intended them to be different.
- reddit_clone 12y agoHuh? This is terrible. I use same names with different styles to denote scope. I will be hosed then.
- jwecker 12y agoThis is my least favorite "feature" of Nim as well and almost killed my interest in it. But it hasn't come up in practice yet for me.
- Dewie3 12y ago> grep and emacs isearch-forward are such great tools for quick code searching and this will break them. If you're using Emacs to begin with... well there is little reason to complain about the default behaviour of functions and keybindings.
- krupan 12y agoSure, but I don't use emacs exclusively (as often as that joke is leveled at emacs users, nobody really does that).
- beeworker 12y agoYou must not use grep with regexes very often.
- krupan 12y agoAre you serious? Quick, write me a grep regexp that will catch all equivalently valid forms of a nim_Identifier (or nimidentifier or nImID_entif_iEr, but not NimIdentifier).
- beeworker 12y agoNot really, sorry. I had forgotten that the first letter is compared case sensitively as I remembered from Nimrod it was all insensitive. But I still think for nearly all cases in real world code you can instead of using nimgrep be equally served by a case insensitive search on (nimidentifier|nim_identifier) even if it's technically possible to have other variants or a mismatch, which you can grep out as a second step anyway, with the capital N.