I can see why this is a controversial assumption though.
I can see why this is a controversial assumption though.
I'd assume that intermediate and experienced C++
developers are probably older on average, and are
unlikely to be interested in developing games.
And that is an incorrect assumption. A non-trivial amount of current game development is done in C++. Couple that with the fact that to have the games considered "AAA" on the market now requires advanced techniques employed in the language producing them and that C++ is a frequent choice results in the invalidation of your statement (not harshing you here BTW).It doesn't hurt my case that I am an experienced "advanced C++" developer which makes video games either tho ;-).
Moreover, C++ isn't outdated, it's mature. There aren't any grand new CS discoveries that are in JS but C++ maintainers haven't heard of yet.
As for "older = unlikely to be interested in developing games", I don't see where you get that from. It's like saying "older people are unlikely to be interested in writing books / making movies".
Also, porting a whole code base to another language at this stage in the game is such a colossal task.
Are you even a developer? I'm not sure you realise how infeasible what you're suggesting is.
How do you deal with the fact that the only native numeric type is a 64bit float? Space Engineers currently uses floats as the basis for their world coordinate system. Things get really bumpy when you get far away from [0,0,0].
C and C++ offer -at a minimum- the following numeric types:
* signed and unsigned integers in a variety of widths
* 32 and 64-bit floating point numbers
JavaScript offers:
* 64-bit floating point numbers
When performing integer math, JavaScript's numeric type is only safe for arithmetic operations between -((2^53)-1) and +((2^53)-1).
Now that we have that out of the way, my original question remains unanswered. :)
Many contemporary games are multi-threaded out of necessity. How would you deal with JavaScript's single-threaded, single-process model of execution? Experimental features like Web Workers?
I'm obviously missing something, and I was looking for the benefit of his insight.