We are talking past each other due to multiple possible interpretations of 
english language terms (do we need a technical standard for english?).

I'm using the term standard in the sense of _technical standard_ as described 
in [Wikipedia](https://en.wikipedia.org/wiki/Technical_standard). Let's denote 
a standard library interpreted this way as a _standardised library_.

However, the Nim community seems to interpret the term standard as an adjective 
as in " _a standard hotel room_ ", - synonym with terms such as normal, usual, 
baseline, customary or prevailing. Let's denote a standard library interpreted 
this way as a _de-facto library_.

I'm using the term Nim 1.0 language (specification) in the sense of ISO/IEC 
9899:2011 language (specification), which includes, among other things, the C 
standard library. However, the Nim community seems to interpret the term Nim 
1.0 language in stricter sense as the things specified in [Nim manual 
(specification)](https://nim-lang.org/docs/manual.html).

I'm inclined to agree that at this point of Nim language maturity there is no 
need to rigorously specify a standarised library. However, the need may raise 
later when competing implementations start to appear. The [BASIC programming 
language](https://en.wikipedia.org/wiki/List_of_BASIC_dialects) is a cautionary 
example of how a language may disintegrate into non-compatible dialects with 
their own sets of documentation if no adherence to a specification is required 
(and with things like 
[MicroPython](http://docs.micropython.org/en/latest/pyboard/library/index.html),
 Python seems dangerous too...).

With these readings in mind, it makes sense to state that the de-facto library 
that ships as part of the Nim reference implementation is not part of the Nim 
language specification and therefore out-of-scope problem in perfecting Nim. 
Some concerns still remain:

  * The Nim reference implementation should be made available as source and as 
installation (the language part implementation of the compiler without any 
out-of-spec-libraries bundled in)
  * Will there be any assurance that the de-facto library will remain 
backwards-compatible after 1.0 (append-only, deprecation marks instead of 
replacements)?
  * Some elementary arithmetic and string handling functions like _sqrt_ and 
_intToStr_ should be moved from library to language specification to make the 
language more general-purpose.
  * It is unfortunate that the Nim language and the Nim compiler are both 
called Nim (in contrast to C/gcc, Java/javac, Python/CPython, Go/gc, ...). To 
avoid confusion, the latter should be renamed to something else ( _nimcc_? 
_nimdom_?), after which I 'm grittingly willing to accept the liberal use of 
the term standard as in " _nimcc standard library, the de-facto library for Nim 
language users_ ").
  * It must be clearly stated somewhere which library modules are available for 
which environments and targets - maybe in some kind of table form.



I hope this helps.

Reply via email to