Category: mobile

I, for one, welcome our javascript overlords

Today’s news about LinkedIn’s HTML5 + Javascript driven iOS app tied together a bunch of trends in my head and, as my former British colleagues would say, made the penny drop for me.

LinkedIn has not just dabbled in HTML5 + Javascript but written nearly their whole application in it and done so with high enough fidelity to leave people guessing which parts were native.  This should make all of us sit up and take notice.

The trend in web apps is obviously towards client centric frameworks like the maturing backbone.js, the emerging ember.js, and the experimental Meteor that provide ever increasing interactivity and connectivity against server backends that are increasingly API and real time oriented.

The trend in mobile is not so positive but clear.   It is literally all some small startups can do to stay on top of maintaining two native apps for Android and iOS.   If Windows Phone pulls itself into the mix as a credible 3rd platform (and I have no doubt Microsoft is willing to go home in a body bag before quitting that quest), it will be a backbreaker and something is going to have to give.

What I realized today is that what is going to give is native.   App developers will increasingly forgo developing natively and are going to go hybrid, leveraging Javascript they already have for their web app and using that where possible across their mobile apps.   Mobile platforms and Javascript engines are finally performant enough, Javascript frameworks are rich and mature enough, and there is so much pain in the app world around developing and fixing everything N times (especially tricky protocol level stuff) that we have reached a breaking point.

The future is Javascript and LinkedIn’s app shows us that the future is here.  And Microsoft, against all the recent trends, seems to have read this correctly and is the best positioned to take advantage.

Windows 8 has a first class HTML5 + Javascript development model that doesn’t force you to re-implement everything and enables you to leverage platform capabilities.   You can bring your Javascript implementation of your API client for your backend (and your HTML5 templates if you so desire) but still take advantage of hardware accelerated transitions, tiles, and other previously only native features (or native through some lowest common denominator interface like PhoneGap that doesn’t clear the Turing test).  Its not hard to see Microsoft bringing this model to phones in Windows Phone 8.

Obviously Chrome OS also has its eyes on this, which is great, but its hard to see how that desktop platform meshes with Android and Google has nothing like Metro that helps app developers scale form factors (nor an installed base of a billion PCs).   Apple has clearly bet native (and this strategy probably makes sense in terms of locking in developers to their platform) but also lacks a coherent development model between desktop and mobile.   I suspect these both will change as the take up of this approach accelerates.

Perhaps this has been obvious to others – or perhaps I have been too pessimistic.   This has always felt like it was the future but today was the first time that we experience was truly viable for me.

It can’t happen fast enough for me.  I’m sick of planning, developing, and fixing the same app and bugs at least three times in entirety.

I, for one, welcome our Javascript overlords.