Very new to Nim, but not new to marketing. Haven't read the whole thread, but 
one issue stands out for me.

For small market entrants, concentration of forces is everything. You have to 
focus on a specific niche you can dominate - a niche too small for the big 
gorillas to compete in.

For languages, three of the most salient new entrants are Julia, Go and Elixir.

  * Julia has a clear identity: fast, interactive numeric computing.
  * Go has a clear identity: scalable microservice servers.
  * Elixir has a clear identity: massively scalable failsafe websites.



Each language was designed to solve a specific pain-point. What this means is 
that each community has built a compelling ecosystem of mature and useful 
libraries around their core domains. If you are active in these areas and you 
want the fastest and easiest path to your goal, these languages are becoming 
the obvious choices. They grew because for many it was worth taking the risk 
and going with an emerging language rather than trying to re-create all that 
functionality in a more general language.

Nim has a much more nebulous identity (pun intended). It rather boils down to " 
_we are more fun to use and a bit better at everything_ ". There is no area 
where the ecosystem provides a compelling advantage over the alternatives. In 
each domain there is a competing language that may be less fun to code in, but 
which has a far more mature ecosystem of libraries and experienced developers.

For most organisations, the undoubted qualities of the language are simply not 
compelling enough to justify a risky change. Library coverage is patchy, and 
most are personal projects with little to no community support. There is a 
miniscule pool of developer talent to draw from, training materials are thin 
and when you get stuck you can't simply google for solutions on StackExchange.

As a result, it seems that most users are people like me - with a personal 
project that allows freedom of choice. Nim sits nicely between the unproductive 
and unsafe system languages like C & C++, and the verbose and boring GC 
corporate languages like C# and Java. This is a sweet-spot that's perfect for 
my current project so I'm prepared to take a gamble. If I was an organisation, 
I would almost certainly have chosen Go - there is a clear path to a decent 
result. But Go is ugly as sin, and I know I'll have more fun and produce a more 
elegant and performant solution with Nim.

TL/DR - I think the community should have realistic expectations. Nim offers 
unique advantages for anyone who needs to write safe and performant code, but 
the foundation is simply not there for explosive growth. It seems to me that 
all you can really do is focus on improving the language and filling obvious 
gaps in the libraries - ideally bringing key projects into the official distro. 
And with luck, eventually a community will coalesce around a specific domain 
that propels Nim to prominence.

Who would have thought in 1991 that Python would eventually dominate the Data 
Science domain? It hardly even existed as a discipline when Python was 
conceived. But it's a reasonably well-designed language that eventually found 
its niche. As a general language with no corporate backing, it took a couple of 
decades to find its feet.

Nim is a better language than Python, so it has a pretty good shot at finding 
its niche in the longer term. But if not, it is much appreciated by many 
thousands of individual developers and small businesses, and hopefully that is 
reward enough for all the hard work the core team have invested?

Reply via email to