Hi! Thanks for listening to the community and Good luck @miran (and everyone)
in making nim better!
Documentation can be classified into
* Soft documentation (clean examples, tutorials how to do X, or building
applications e2e this is a major factor)
* Hard (reference) documentation (documentation for every single bit in the
code) (nim makes that easy by just being static language)
A. Nim documentation in general Nim documentation page currently contains links
to 4 tutorials, 2 books, FAQ, Wiki (last updated in March 2018), standard
library documentation, and manual.
1. Do you think there should be more links to the existing (user-created)
resources? If so, which ones?
Run
As nim is growing and tackling various worlds frontend for instance a decent
karax tutorial can be promoted (i.e
[https://moigagoo.svbtle.com/exploring-karax)](https://moigagoo.svbtle.com/exploring-karax\)).
there're some [pleasent
writings]([https://scripter.co/notes](https://scripter.co/notes)) I'm not
actually aware of more sadly.
2. What resources are needed? Video tutorials, how-to tutorials for some
field X (what is X for you?), cookbook (there is/was one, but it seems it is
not updated anymore), etc.
Run
* Video is always amazing. 2 mins episodes talking about certain nim concept
or construct would be amazing
* Effective Nim guide (something like
[https://golang.org/doc/effective_go.html](https://golang.org/doc/effective_go.html))
* Howtos/Cookbooks
* Concurrency done right tutorials from concepts to some of well known
patterns. (e.g [https://gobyexample.com](https://gobyexample.com)
[https://doc.rust-lang.org/rust-by-example](https://doc.rust-lang.org/rust-by-example)/
[https://a-tour-of-go-in-haskell.syocy.net/en_US/index.html](https://a-tour-of-go-in-haskell.syocy.net/en_US/index.html))
* PyMotw like projects ([https://pymotw.com/3/](https://pymotw.com/3/)) but
I suggest that to be part of Nim modules itself not a separate project.
* Macros
* Concepts
* Contracts
* Selling dependency-free binaries? tell us how to build ones correclty
from the 100000 compiler flags there
* Selling javascript integration? take our hands into creating simple apps
with that
* Compiler guide I don't know what i'm supposed to be looking for in there.
3. Have you used Rosetta Code for learning how to do things in Nim? Do you
find it useful?
Run
I dislike rosetta code because of the way of browsing the code and it's kinda
dry
. Have you used code practice sites like Exercism to learn Nim (or some
other language)? Do you think they are
useful for learning the language? (Or in Nim case: would they be useful if
they had more Nim exercises availbable?)
Run
I've, they're bit easy and approachable enough to get familiar with whatever
language you're practicing. It'd be great if we can coordinate with those
platforms.
5. Can you show us the examples of 'good documentation' (GD, later in the
text) in other programming languages?
Run
I'm a big fan of the community effort to tame the user experience with Rust.
Rust is complex but it goes by (are we good enough yet?)
Rust and go really set the bar so high for the documentation quality
* Rust docs
[https://doc.rust-lang.org/book/index.html](https://doc.rust-lang.org/book/index.html)
and for who doesn't want to read hundreds of pages
[https://doc.rust-lang.org/rust-by-example/index.html](https://doc.rust-lang.org/rust-by-example/index.html)
* Go docs [https://golang.org/doc](https://golang.org/doc)/
* Python docs are okaish
([https://docs.python.org/3/](https://docs.python.org/3/)) I use pymotw lots.
6. What does the GD consist of? For each module, a general explanation of
what it does, code examples of its usage? Long explanations of each
function/type/constant? Lots of examples for each function? Links to other
modules? Something else?
Run
For modules in ideal world I expect
* Gentle intro to the module
* Detailed code intention for each part
* every proc, type, constant to be documented even if then name is clear
* combined with tests for both each proc and a general test on how the module
is intended to be used
The quality of standard library documentation varies from module to module.
7. What is you major pain point when using Nim documentation? Is it hard to
find the module(s) which would be useful to you? Can you understand what a
function does based on the description and the example? Are (most of the time)
the examples missing or not informative enough?
Run
* threading (no clear way on how to use)
* peg
* pcre or we should be use re? or peg all the way? i'm confused a bit.
* testing
8\. Is there any Nim module which satisfies your criteria for GD? (It is good
as it is, doesn't need any improvements) I disagree with the question,
everything is in ongoing process for improvment.
To name a few modules I'm happy with os, osproc, sqlite
10. Are you willing to help making Nim documentation better? :)
Run
I'm trying to help out as much as I can :)