# 1\. Name and about

Nim is the smartest name a language could have nowadays, since the Nimrod myth 
points to the human blindness seeking for power and richness that lead to the 
kind of confusion and humiliation of having multiple languages.

Nim is on the way to correct this human mistake, serving as a lingua franca for 
coding, from web frameworks to microcontrollers and dsl's.

The Nim Crown is there to remember the way we need to walk to restore the 
unity, with simplicity and enabling everyone build good stuff with less effort.

Yet there is a kind of secrecy about the name and inspiration/purpose of Nim 
lang. As people always refers to a forum post, looking unnoficial and prone to 
changing.

Why is this important? To reason about meaning, put purpose int what we do, how 
we do and for what we do. Would be nice if it would explicitly expressed.

# 2\. Conventions are not so bad

There is some discussion about case sensitivity and underscore usage. Some 
things should be considered in this aspect:

  * DocGen generated shows the name of procedures used in code. So, reading a 
documentation, someone sees many kinds of naming conventions, leading to an 
cracked experience of errors and trials. It is not good, specially for bigger 
projects.
  * NimSuggest allows lsp to serve code names. It need to respect the name 
found in a code. So, if I use under_score in my code and some dependency uses 
camelCase, or vice-versa, I would end disabling completion tool (limiting my 
work) or in a compulsion for refactor any complete piece of code. Even people 
not prone to that, will look at their own code less proudly and satisfied.



There are users accostumated with current state, but even them will recognize 
the long term benefits. Newcommers will feel more comfortable (independently 
from where they come). As time passes more

  * Package naming also can't have hiphens but can have underscores. It also 
would need to stick with the naming convention for a matter of simplicity.



# 3\. Visual shortcuts at compilation messages

When compiling code today, there is a coloured "error" message followed by 
stack trace.

Would be nice the message between <> after "type mismatch: got" and each of 
"but expected one of:" could have some distinguishable way of print, with 
color, bold or even formatting. This would make easier to reason on debugging 
spotting the errors, specially for bigger stacks.

# 4\. Tips about overloads

When there are overloads, it is difficult to discover how and where a function 
is being overloaded and witch types of its parameters.

Nimsuggest shows that a function has overloads. There is no signature, no 
indication where each overload is to look for. A way to show it would ease a 
lot.

# Conclusion

As a new user of the language, these are superficial things I could spot after 
two months of usage. I don't know the extension and complexity of the current 
issues to be roadmapped. But as suggestion, I need to be honest contributing 
with this perception. 

Reply via email to