People want "Python" \+ static execution + structural capabilities. If Nim strieves to deliver the former, then with: > The fact that newer CPUs are not going up in clock speed but in number of cores means that performance can only come from effective multi-threading. Given Nim plays in the performant side of programming languages, having a competitive strategy for multi-threading is crucial to longterm success.
we have a contradiction. "Python" should be replaced with "model-based language". A language that adapts easily to different types (and/or data). C as a purely static language was quickly extended with "C++" and "Objective C" . The dynamic part of C++ came from virtual methods aka vtables, the structural parts of C++ are templates and classes. Objective C was an early implementation of a prototype-based language. Therefore, Objective C stands for "highly dynamic". The recent successor of ObjC is Swift, but any scripting language (python,ruby,javascript) adapts ObjC's properties too. Given the execution speed of Nim, people would accept easily a loss of 40% speed due to a garbage collector. As long as they can work with a "dynamic" Nim. Nim could be made even more dynamic with vtables. Some structural capabilities could be added, e.g. ADTs, GADTs, and/or type classes.
