Because it's 2016 and the notion of pinning to C++ is sort of antiquated. C++ can deliver better performance in some cases, but it also brings about a great deal more risk of security issues involving arbitrary code execution and data corruption.
You have to have VERY tight performance requirements to make C++ worth the risk it entails, in my opinion. If the only thing standing between you and a code injection exploit is developer discipline and best practices, then you're in a strictly worse place than managed code.
I actually think C++ is a very good choice in 2016 for the following reasons.
1. C++ is the only high-level language that is vendor supported across Linux, OSX, iOS, Windows, Windows Phone, and Android. React Native is aiming for cross-platform, using a cross-platform non-proprietary language would seem to be a better match. Along the same lines, there is less risk of vendor lock-in with C++ than with C#
2. While raw performance may be less of an issue, with mobile lightweight devices where use is limited by how long the battery lasts - performance per watt becomes an issue. Having a higher performance language can result in using less power and thus a better user experience.
3. Modern C++14 is much better in terms of memory safety and ease of use. The main issue with C++14 vs C# is that C# has better libraries, not with intrinsic usability of the language.
4. The issues with code execution and data corruption are significantly mitigated by the fact that you are targeting basically a sandboxed application. In addition, it is interesting to note that most desktop Win32 applications that people use on a daily basis are probably written in C++, and they have far more permissions than a universal windows app.
This is such a concise and informed comment. Why has it been voted down to being barely dim on my screen? These are good arguments. Please reply to stuff like this instead of knee-jerk downvoting.
I sit upon my horde of HN karma burning it daily. I knew I'd be downvoted for replying to a language preference quote. Especially given how very charged the C++ community is as they feel increasingly abandoned by Microsoft.
But that argument revolves around the growing importance of the Microsoft software store. Its actually an argument between ISVs and Microsoft about how much control MS can have in software distribution and security.
Isn't that a performance concern though? Especially within the context of a react native implementation that environment is already going to push you way above what is achievable with C++.
If we're talking a 5% reduction in the net heap usage for a react native app at the cost of substantially more error prone code, is that really a win? Hell, make it 10%? These apps still readily fit in mobile hardware, and you wouldn't be using react native on a Pi or other more tightly resources embedded system.
You have to have VERY tight performance requirements to make C++ worth the risk it entails, in my opinion. If the only thing standing between you and a code injection exploit is developer discipline and best practices, then you're in a strictly worse place than managed code.