Looking For Anything Specific?

The Future of Apps — JS vs Native?

Recently, I have seen a trend of compiling JavaScript into and using WebGL’s JavaScript interface to leverage native mobile apps. The question is if that will become mainstream.

We all know that JavaScript—a language created in ten days as a “hobby script” of Java—has since become a lingua franca of the internet. Despite its many flaw and grotesque, it is very welcoming to new programmers and even those with little programming experience. It is the top language on Github, exists everywhere from the server to microcontroller, and has all kinds of data source and APIs on the web providing interfaces to it. You can certainly do almost everything using the language. To say that JavaScript is a universal language is not an overstatement.

One interesting approach to the language is in mobile applications. The mobile devices can be compared to the brick-and-mortar window shops and the apps are products and services developers place on their marketplaces to sell to the world. A major nuisance is the war on standard. Each vendor of the tech world—Apple, Google, and Microsoft—for good reasons strive to develop its own standard of developing on its platform. Information is power, and the recipes and tools are as valuable a leverage to their trades as their main products themselves. However, this sure posts some inconvenience to the end developers who often want to develop their products for as many platforms and as fast as possible. To say the least, it is not common to find a developer who is very good in Objective-C for iOS as in Java for Android, .NET for Windows and HTML/JavaScript for the web. In fact, native app developers have a very different skillset than those developing the web apps.

That’s why it is really interesting to see one language that’s leveraging all platforms. How appealing it is to write your code one time and run everywhere? There is a kind of democratic feel to it. And the good thing is that it isn’t from niceties that vendors like Apple and Google are allowing JavaScript-powered app to be run using technology like Cordova and launched on their marketplaces. It’s a necessity, and that’s the real power of capitalism and bargain.

As far as I know, there are many Javascript frameworks out there — Famo.us and Meteor, to name a few — that has seamless integration to Cordova and let developers build mobile native apps using pure Javascript. The downside to this is performance and type-safety. Javascript is a super dynamically-typed scripting language and has a lot of caveats in the language that it’s almost impossible to write type-safe code with it. On the other hand, iOS’s and Android’s native languages are always statically-typed. This fact is perhaps the only barrier keeping developers from using Javascript for serious, scalable native mobile applications.