You can see why this is so compelling. It saves you time and money getting your app to market, and you can cut your maintenance and development cost in half. And from a developer’s standpoint it’s also interesting. Developers get to use the tools they know JavaScript or C# for example to build for platforms they’re not familiar with.
Cross-platform development has long been the holy grail of building software. Most cross-platform development tools promise you can build your codebase once, and then run the app on any platform. Why build natively for every different platform, if you can build it once and deploy on as many platforms as you want?