PS. Many thanks to the Facebook team for building a great platform in React Native and their critical help in helping us bring Windows to the platform.
PS. Many thanks to the Facebook team for building a great platform in React Native and their critical help in helping us bring Windows to the platform.
And the well-known performance and memory advantages, however small, are critical for mobile devices. I don't think Microsoft should commit long-term to C# on mobile just as both Apple and supposedly Google are migrating to Swift as the future of their platforms, for good reason.
My two cents.
Windows Phone is many things, and few of those things are good. But in terms of UI responsiveness and overall speed, it puts my android to shame and competes with my iPhone.
And the security story of unmanaged languages is perilously bad. I don't see how people justify it anymore.
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'm sure at least some people think C++ is helpful as a hedge against this.
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.
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.
I am just happy one person liked it. :)
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.