Web Or Apps (Revisited)?

The Web vs Apps dilemma keeps on rolling. It started with the iPhone1, which opened the idea of an "App", as we understand it today. Then we started comparing platforms by counting the number of available apps: iOS had this and Android had that and Blackberry had only this... Then HTML5 has come along and many (including myself) believed Apps were going to die because they would soon be replaced by new powerful Web technologies. Then Facebook announced the HTML5 decision was the worst they ever made.

So where is the future? In the Web or in Apps?

Here is my opinion based on the work we have done at WiHo.me: Apps will die and will be replaced by the Web technologies known as HTML5. And at the same time Apps will live and will not be replaced by the Web technologies known as HTML5. Confused? Keep on reading.

The first statement: Apps will die and will be replaced by HTML5 applies to desktop computing. There are less and less dedicated, so called "rich client" applications (programs) we use on our desktop / laptop machines. Just about the only one remains the Web Browser. Developers do not count here (yet), as they use compilers and integrated development environments, including debuggers, profilers and other magical programs to do the taks. But us, mere mortals, have very little to do on our desktops outside the browsers. Yes, there are still people using Microsoft Office or Open Office, but even the line of business (ERP) apps are now being replaced by the Intranet browsers. And the number of Google Docs fans (including myself) keeps on growing.

We have had a fairly complicated application written in Microsoft .NET. It was a pain. Pain to install (required .NET Framework 4 that required administrator rights to install). Pain to use. Pain to update. Just two months ago we still were not sure it was the right time to drop .NET all together and start building the new, purely browser-based version from scratch. Several weeks of prototyping proved the time has come. HTML5 support is more than ever unified across different browsers. JavaScript performance is the fastest growing number in the industry. Look, even the iPhone5 processor has been specifically optimized at the silicon level to run JavaScript faster. The quality of JavaScript support libraries is better than ever. The time has come. Continuing development of a desktop application using legacy technologies is a bad decision. The time has come. Switch to HTML5. Which by the way brings an extra bonus: cross - platform compatibility. A single HTML5 - based desktop application will run on Windows, Macs and Linux computers. The market share of Windows OS is shrinking. It will continue, because more desktop apps will move to the Web and people will no longer be selecting Windows for compatibility reasons. Positive feedback loop. Less Windows, more Macs, even less reasons to buy Windows, even less Windows, even more Macs...

The second statement: Apps will live and will not be replaced by the Web technologies known as HTML5 applies to mobile. May be not indefinitely, but for the foreseeable future the statement will hold true. The reason is: performance. Whatever MHz or GHz mobile devices crank, they are never as powerful as their desktop counterparts. And while you can write a very rich and elegant HTML5 mobile app, it will never be able to behave as polished and as smooth and as a native one. And the polish and smoothness bar is set extremely high by Apple. Android was trying to reach this level for many years. It looks now with the 4.1 and fast multicore processors Android has almost reached the Apple level. But it is completely out of reach for HTML5 applications today. So for mobile scenarios, if you want something looking decent, native is the only way to go.

Web for desktop and apps for mobile seems somehow counter-intuitive, as  we have been used to something quite opposite: applications for desktops and web for mobile. But based on the extensive research we have done, to get the proper results on mobile you have no choice but to go native. At the same time desktop has become capable of running browser - only apps. And Macs are becoming even harder to ignore as a platform, so selecting a universal technology, like HTML5, makes even more sense.

The final question is: is somebody, eventually, going to come up with a universal IDE (Integrated Development Environment) to let us develop great multi-platform mobile apps - one code base, design and debugging tool, at least for both iOS and Android?

Comments