Nim is an excellent project but its ecosystem is too damn small. Besides the core devs what Nim needs is small companies that try nim and release more and more quality pkgs like yglukhov did with his Reel Valley project.

If you do not have the resources to build something like that do small screencasts, write short blog posts about what you think are cool aspects of Nim and how did it help you to achieve your goal.

Other than that we need 1.0 and a continuous development for the C/CPP and JS backends.

2018-01-12 10:53:43
bli

I read about Nim in a reddit thread where someone was asking advice about what next language to learn. I was curious, so I read a little about nim. My understanding was that Nim was sold as an efficient language with python-like syntax (plus being strong in some concepts I'm not familiar with like meta-programming).

That sounded really cool to me, because Python is more or less my only programming language, and sometimes I would like to learn something else, and that may allow me to write faster programs. So I read the tutorial and gave a try at Nim by writing a Nim version of a small bioinformatics data manipulating program that I already have in Python and Haskell.

I'm happy with the result, but my impression so far is that Nim is actually not so easy to learn. It is not at all as beginner-friendly as Python. The documentation is comparatively poor, and one major issue is the discoverability of solutions to my practical problems. This in turn is probably due to the small size of its user community. Look here for instance: https://codereview.stackexchange.com/questions/tagged/nim Two questions only, none answered.

I struggled getting my program to do simple things such as being able to read either from stdin or from a command-line-given file. Now I want to be able to read from gzipped data, and the only thing I found was this file: https://github.com/nim-lang/zip/blob/master/zip/gzipfiles.nim

I have little clue was streams are (versus Files), and it will probably difficult to understand how to use this. I need examples. Maybe Python made me a lazy programmer, but the way I learn is by being exposed to examples more than by reading the manual of the language (that said, the first language in which I wrote small programs was TurboPascal, and I learned by reading paper documentation back in the pre-internet era).

A larger community would likely help fix these issues, by multiplying the availability of code examples, by increasing the chance someone gets answers in stackexchange sites.

2018-01-18 15:59:45

@jzakiya Thank you for these suggestions and for writing up that longer post, it was an interesting read. Please don't be dissuaded by the replies to this thread so far.

Your suggestions are good, here are my requests/thoughts:

Having access to various Ruby article feeder sites I recently came across this

https://hacklines.com/

https://hacklines.com/en?ucc=rubyflow&tags=Ruby%2CRails%2CSinatra

I'd love for Nim to be included on this website. But how do we get Nim there? Perhaps you know? If you do, what's stopping you from getting Nim there?

We desperately need people who care about Nim and do everything they can to get Nim noticed, like what you've suggested. I would love to do it myself but my time is currently really stretched to its limit.

I also subscribe to different languages (Rust, Elixir, Julia) which use the Discourse ecosystem for their forum/communities communication system. I know Nim has this forum, but using Discourse may make if more accessible to people who haven't even heard of Nim. Just some thoughts.

Yes, we could do this. The main reason we don't is because we are proud of this forum (by we I mean myself and Araq), and it has been with us before Discourse was ever a thing so it would be sad to replace.

I think Nim has very good technical merits as a programming language. Other languages, however, are eating Nim's lunch because they have larger and more friendly/accessible communities, better documentation, and more public mindshare.

Which languages are those? Rust? Go? Those languages have a lot of resources behind them. There are certainly things we could be doing better, but please understand that we rely on other members of the Nim community to help out. You're already helping by letting us know what we could be doing better, and I appreciate that. Do consider going a step further and doing everything you can to implement your requests yourself.

2018-01-18 21:36:05

@bli Thank you for taking the time to write down the pains you've experienced while learning Nim

Look here for instance: https://codereview.stackexchange.com/questions/tagged/nim Two questions only, none answered.

I didn't even realise this stack exchange site exists, sadly I think by now those users have moved on :/

I struggled getting my program to do simple things such as being able to read either from stdin or from a command-line-given file. Now I want to be able to read from gzipped data, and the only thing I found was this file: https://github.com/nim-lang/zip/blob/master/zip/gzipfiles.nim

The best thing to do in those situations is to ask questions. The advantage of the small community is that if you join IRC/Gitter and ask a question like this, somebody will answer you (and that somebody might even be Nim's creator, Araq).

Here is an example of how to use this: https://github.com/nim-lang/zip/blob/master/tests/gziptests.nim (note, you'll need to change the import ../zip/gzipfiles to import zip/gzipfiles, this really should be fixed in the repo...). You will also need to install this package via nimble install zip.

Hope that helps

2018-01-18 21:41:48
bli

@dom96 Thanks for the clever suggestion to look at the tests.

I'll ask questions regarding my particular practical issue in another thread.

2018-01-19 13:07:39
<<<••12••>>>