Actually, `the only limits of what you can provide in documentation are self 
imposed`.

`Writing documentation is an attitude!` Either you care about doing it (to 
benefit/help users) or you don't.

Nim has to compete against lots of other languages, and like cars, smartphones, 
etc, having the better/best technology doesn't mean you will have the biggest 
following. People will ultimately use first the things that are accessible, 
easy to use, and cheap (why do Americans eat so much bad fastfood - because its 
cheap, the stores are everywhere, and they stay open late when people are 
hungry).

Your own 2017 Survey specifically lists lack of documentation as one of the 
biggest deficiencies of this project, but I don't see an active effort to make 
it better.

[https://nim-lang.org/blog/2017/10/01/community-survey-results-2017.html](https://nim-lang.org/blog/2017/10/01/community-survey-results-2017.html)

Let's compare Nim against Rust, two languages promoting themselves as `system` 
programming languages. Rust is by far a much harder to learn/use language than 
Nim, but it knows that, and has created very good documentation (and forum) to 
help people get their heads `(and hearts)` around it.

Both Nim and Rust have a document called `[Nim|Rust] by Example`, but tell me 
which is more helpful/useful to potential users.

Let's compare their presentation of `arrays` in each document.

Nim: 
[https://nim-by-example.github.io/arrays](https://nim-by-example.github.io/arrays)/

Rust: 
[https://rustbyexample.com/primitives/array.html](https://rustbyexample.com/primitives/array.html)

As `a potential user` I get a much clearer understanding of how to create, 
access, and print arrays from Rust's docs, with examples for each use case 
given.

Now let's take a look at Ruby's: 
[https://www.ruby-lang.org/en/documentation](https://www.ruby-lang.org/en/documentation)/

Granted, Ruby has been around a lot longer than Nim, and has loads of books, 
videos, and conferences, but it all starts with an `attitude` of the Ruby 
community, which is probably `The Most Friendly` language community in the 
world. You can find just about anything you want on this page about how to use 
Ruby, and this is by design. They didn't limit what they could do.

And here's what I mean by `attitude` for this specific instance of trying to 
find out about outputting floating points.

I took about three hours, searching the docs and internet, trying to find out 
how to print out floats to a given precision, and gave up after being 
frustrated (fed up). Only then did I resort to asking help in the forums. It 
was first answered by only providing a link to a cryptic (my impression of it) 
function, which had no examples of how to use it. I had to ask, again, how to 
use it, and was finally given a specific example of how. And then when I point 
out none of those functions on that page (and elsewhere) have specific use case 
examples, instead of saying, "you're right, we'll get on it", you give excuses 
(there are limits to what we can do).

If I were you all, I'd start immediately upgrading your docs, first by 
formatting the categories from the point of view of helping potential users 
(Input/Outputting Data, How to use Files, etc) with clear/concise/helpful use 
case examples. You can start by copying `best practices` used in other projects 
docs.

Would this take a lot of work and effort -- `Hell Yes!`. But you all need to 
really understand, you are not only in a battle to win peoples minds, to get 
them to understand your language, you're also competing to win (and keep) their 
`hearts`, so they `want` to use your language. People can criticize Ruby all 
they want, but people who use Ruby, and go to its conferences, do so because 
they `love it`, even when they move on to other languages (like Elixir).

Actually, this specific discussion should have its own thread, so others can 
chime in, and not be buried at the end of this thread.

But please take `to heart` this old saying: `You only have one chance to make a 
first impression.`

Reply via email to