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.