There many issues that I believe Nim still needs to address before it can truly 
be a success story. It is already an impressive and inspiring one, but long 
term success cannot be claimed until we arrive at a future point in time. It's 
TBD but I think these things are hurting Nim's chances of fulfilling its 
potential as a programming language:

1) Community - it sucks. For a lot of reasons. Most of which I won't get into 
here, but they're long stemming issues and they've never been fully addressed. 
Community is one area of Nim that very little effort has gone into minus 
communication bridges and bots. In other languages there are some quite 
inspiring stories of community projects and you can see traction in areas of 
language ecosystems like Rust and the wGPU stuff. Nim has very little of this 
that is well organized. I realize Rust has more users a foundation, and in some 
cases monetary support, so maybe it's not a fair comparison. Either way I think 
Nim's community / lack of a healthy one, is one of its largest issues atm.

2) Advertising / marketing - this story kind of stinks too IMO. The website is 
still bad after I don't know how much back and forth and redesigning. It's not 
aesthetically unpleasing but still no one has found an effective way to market 
Nim on it after all these years. People have shone a light on how you can build 
a message board or a snake game using JS and websockets with Nim instead of 
showing people what you can do with Nim that they might actually be interested 
in doing - Nim after all aims to procure the system programming language 
audience (C/C++, Zig, Rust, etc...) most of whom aren't interested in making 
snake in the browser.

It also fails to effectively attract the newcomer - it just mentions a bunch of 
languages most new programmers have never heard of (minus Python) and refers to 
a bunch of terms they're not going to understand. It fails to capture why 
anyone should really use Nim and instead shows fun things you can do with Nim 
that newcomers aren't going to understand and seasoned system programmers 
aren't going to care about.

3) Nimble - it tries to do too much and doesn't do any of it well enough. If it 
did the community wouldn't have ongoing efforts of people trying to solve the 
problem themselves. Fact is - the community does and it also consists of users 
who just choose to forego using nimble entirely because it causes them issues.

4) Stdlib consistency and stability - there is still a lot of work to be done 
here.

5) Projects that have been used to prop Nim up / the community has been told to 
rally around, only to languish or be left to he community to maintain - there 
are a lot of instances where folks have received suggestions to depend on a 
certain library or use a certain tool to accomplish some goal, only to have the 
author disappear or stop working on the project. In some cases the person who 
built the software is still a community member but decides not to maintain it, 
and this is even more frustrating at times.

6) Leadership - this isn't a dig at anyone or any group of people, it's an 
observation that Nim's leadership could use some help, at least in my opinion 
(and we were asked to deliver our opinion in this thread). I think there isn't 
enough community oversight in terms of helping lead Nim in the right direction, 
and making sure that the decisions being made for the language and community, 
are really going to benefit Nim in the long run. Obviously Araq & co are 
already doing this and have done this for a long time - but I think there are 
things that get overlooked and everyone is busy. Unfortunately Nim pays for 
this, over and over again.

Reply via email to