My learning experience with Nim, the language itself, is exceptionally pleasing and intuitive. I am able to program useful and fairly complex data analysis algorithms in short time. An area where Nim can be more helpful for me is communicating the various levels of maturity of the individual modules that I import. I want to way to understand their usability before I embark on programming at a deeper level and investing time. In many cases we do see the notice indicating Beta or Expreimental or that something might significantly change in the future. As a user, I would love to hear other hints on the use-ability of a module that is put out there (regardless of the phase in its development cycle) and let me explain this further below.
As an example, the postgresql module is a work-horse for me. From my first exposure to it everything just worked and kept working. For mongodb driver I cannot say the same thing. The examples cited in its documentation are very pleasing but to get it work in reality takes longer time than what I am able to invest in. I wish I had known this before I embarked. I salute the work when a volunteer developer contributes to a module and we all know that it takes time to harden a product. I realize that in voluntary development work the implementer has limited time and money to put into their project. So on one hand we want to encourage all kinds of development work to happen without any hindrances or imposing our "expectations". Nevertheless a product is put out there for people to pickup and the programmer got to know something about the time and effort to deploy it as per the specification advertised. One suggestion is to have a end-user rating system (zero star to five starts) on usability in the module documentation perhaps. That is, whether (1) an end-user is actually using the module in something that is fairly interesting and (2) how pleasing the user interface (completeness/bugs/confusion with an api, etc). Just some thoughts, adding here another data point to this conversation.
