I wrote a pretty long reply but then I accidentally refreshed the page and lost 
it all.

I'm pretty new to Nim, haven't yet used it much, but I do have experience in a 
couple other languages. Here's a list of things I appreciate from them:

**Elixir**

  * Standardized website for documentation ([hexdocs](https://hexdocs.pm)), 
which is used for both [the language itself](https://hexdocs.pm/elixir), as 
well as all libraries, e.g. [Ecto](https://hexdocs.pm/ecto).
  * Clear structure, easy to use site, easy navigation.
  * Offline docs support (e.g. in the Elixir REPL iex: `h String.graphemes` to 
get formatted docs for that function).



**D**

  * Well structured site
  * Runnable code samples in the browser.



**PHP**

  * Typically really comprehensive docs. For example, most functions have 
details description of each parameter, example sections, errors that may be 
thrown, possible pitfalls, etc). The comments can be pretty useful sometimes, 
but can also be bad or filled with outdated knowledge.
  * Easy lookup of functions that you already know. E.g. 
<https://php.net/fopen>.



I've lately also been looking at [the various types of 
documentation](https://documentation.divio.com/).

> the left navigation bar is really god, and scrolls independently of the main 
> pane

This bothered me while reading the Nim manual as well. I'll see if I can work 
on this, maybe make a PR.

One thing I was missing in the Nim manual was dealing with `nil`. Where can I 
expect `nil` values (and must I check for them), which types are nullable by 
default, can I annotate something as not null, what about `options`?

Off topic: the message editor on this forum behaves quite oddly. When I expand 
the textarea and then lose tab focus, it jumps back to its previous size. 
Similarly, with an expanded textarea, when I click on "preview" the first click 
will resize back to default and only the second click previews correctly.

Reply via email to