I'm torn. I _love_ Araq's attitude on this. He's right that languages should 
reject similar identifiers, or flag them, or consider them the same. It's bad 
coding.

However, I'm not looking for the perfect language. A major strength of **Nim** 
is the easy foreign-function-interface, and this reduces that strength. (People 
want examples. Ok. So far, I've only see conflicts between identifiers and 
MACROS.)

> So basically it would break a lot to change it now. Which makes me say: 
> Meh... I don't like it, I don't want it, I don't need it, but I have to 
> accept it, because it will not change. To me it is merely a bad design 
> decision after all.

It would take similar effort to fix the few problems in the Nim std library as 
it takes _me_ to fix the problems each time I run `c2nim`.

For existing libraries, allow a compiler flag to use "partial casing". Or, do 
what GoLang does: Provide a **NimFix** like **gofix** to standardize the 
casing. Or add an option to nim-pretty.

There is also a deeper issue here. The main concern I here at work about 
**Nim** is not something small like indentation or the default `import *`; it's 
the absence of a major company like Google or Oracle behind it. Minimally, a 
language needs to be actively developed by multiple coders. Python famously has 
a BDFL, but Guido only settles arguments. At some point, a language has to move 
to committee (unfortunately).

The most important thing for **Nim** right now is simplicity. We need Araq to 
concentrate on deciding which language features are too complicated to support. 
Partial casing is a small amount of code, but it's needlessly complex and 
divisive. Drop it; eliminate some arguments and some real problems; then get 
back to deciding on a simpler version of "concepts" versus something like 
"traits". Simplify, simplify, simplify.

I won't give up on **Nim** personally, but within my company I might have to 
pivot away from FFI-biased languages (since integration with other languages is 
just a hard problem) toward something less controversial, like Julia or Kotlin.

Reply via email to