We should start thinking of programming language performance in terms of 
economic costs. We can then use the same units (Dollars / Euros / Bitcoins / 
etc) to compare all aspects of programming language choice.

When we say for example that "C is faster than Python", we really mean that 
it's cheaper - in terms of how much you pay for your electricity and computer 
hardware (which is an up-front cost that depreciates over time and use). Python 
can run just as fast as C++, but at a greater cost. And, if you've already 
invested in decent hardware, for many programs the performance difference is 
too minute for the human senses to notice.

Program execution resources (or backend cloud hosting costs, or people who 
can't play your game due to minimal hardware requirements) is money; developer 
time is money; risk of bugs is money - everything is money.

So let's say that implementing your game in Nim instead of C++ means 20% larger 
binary sizes, 20% more RAM usage, and 20% more CPU/GPU usage. (All numbers here 
are wild guesses, in my opinion very pessimistic.) Let's say this difference 
raises the cost of a minimum computer to play your game from $300 to $350, 
reduces FPS on a $500 computer by 20%, reduces FPS on a $600 computer by 5%, 
and has no perceivable difference on computers costing above $700.

You'd need to do a lot of difficult research and number-crunching to 
guesstimate what tangible downsides (if any) would apply to your specific 
project. There's also a positive correlation between willingness to pay for 
decent hardware and willingness to pay for your game. Maybe all of your target 
audience already has the hardware on which there is no humanly perceivable 
difference, and a few cents of extra electricity costs will not have any 
influence on whether or how much they play your game.

The upsides of implementing your game in Nim instead of C++, on the other hand, 
are MUCH more significant. I can only guess at the exact numbers, but I think 
Nim is likely to cut your programming time to AT VERY LEAST half of what it 
would be with C++. Some C++ projects become a debugging nightmare and take a 
ridiculous amount of effort to reach stability. No game is slower than the game 
that you can't afford to finish developing.

What makes Nim the greatest programming language (despite the handicap of low 
popularity, for now) is not that it's the fastest language (Assembly?), or the 
most productive language (Python? Ruby?), or the safest language (Ada? 
Haskell?), or the language with best tooling (Java? C#?). Nim is greatest 
because it gives you the greatest combination of all of the above. 

Reply via email to