I'm a lousy marketing or sales guy but one thing even I understood and keep in mind is this: the result of communication is _not_ what has been said but what has been heard. As promoting a language (and arguably even building one meant not only for oneself) is a "use case" of communication it seems logical to me that the relevant part (in the context of promotion or even just introduction) is _not us_ but rather the target audience.
I agree with your definitions - but: the relevant question is -> what do the people think and want and understand to whom one tries to promote Nim? Plus: will they, looking closer, find their perception and our "promise" confirmed? One point that keeps me thinking is this -> versatility != jack of all trades without clear contour. That's why I talked of "the core". What is Nim meant to be at its core? If it servers well in other fields/beyond its core _in addition_ that's great. Right now I feel that Nim's contours are somewhat vage; at times it almost seems that Nim is defined by whatever some of its developers feel to be important at any point in time. Another point I feel to be of importance is the well established rule that most people don't care a lot _how_ something is achieved. They care about _what_ is achieved. Similarly they don't care a lot about mechanisms but about results. At least at first and most. Python, for instance, was/is promoted as (and indeed is) "easy, everywhere, versatile, lots of batteries" and Guido van Rossum evidently wasn't just a benevolent dictator but also one who made sure that Python always had a clear core definition and contours and delivered on that and its "promise". What is Nim's core and "promise"? To promote Nim we need an answer to that and one that is clear cut, understandable, binding, and consistently observable. I'll end with a personal view: I looked at many languages and tried quite some. I was drawn to Nim by my impression (largely based on material on Nim's web site) that Nim covers what C covers but with a sharp eye on safety and consistency as well as with a more modern feature set (e.g. UFC). In the next step I verified that Nim _really_ cares for safety and really covers the field at least to a large degree. Only then did I actually download and try it. Frankly, if my need (for certain features) were a bit less urgent I would have left quite soon due to some shortcomings - "funnily" largely not in Nim but around it (editor, debugging, docs). Another point that makes me unhappy is that it sometimes seems (apologies in advance if I'm simply mistaken) that some core developers seem to not consistently pull through and do so clearly focused on a well established definition of what Nim is meant to be but rather "jump around" with an ever changing interest in this or that new feature. Inter alia two Nim IDEs seem to be symptoms of that. And 1.0 still seems to move and move and move into the future. So, what are we to promote?
