Pseudo Associative

Random thoughts on software development

0 notes

The old struggle: native vs cross platform

Today there is a lot of talk about iPhone and Android apps. They were not supposed to have happened because the future belonged to the web. It happened anyway.

At a Java conference today I talked to some software managers at different consulting companies. They all seemed convinced that the app was a fad and HTML5 would take over. I think they are going to be wrong again. It is understandable why they think so, because the web is really ITs wet dream:

  • You can do all updates, configuration and maintenance in one place
  • Just one platform to support
  • Develop once and run everywhere
  • Easy deployment. All you the clients need is a web browser.

But wanting something doesn’t make it so. Consumers have shown that they don’t care about how great web apps are for IT people. Consumers want slick, smooth and rich applications. And unfortunately the people in the IT departments has no idea of what this really is.

Fundamentally this isn’t really about the web at all. Instead it is the age old struggle between native applications and cross platform applications. Naturally IT likes cross platform. It has always been like this and they are always going to want it that way. They want to write their stuff once and use it everywhere.

But this is not what the consumer wants. The consumer choose a platform because they think that platform is better. This goes for personal computers, phones and game consoles. Each platform will have unique strengths and abilities to make themselves attractive to the consumer. The consoles want to offer unique interactions that the other platform can’t afford or be able to produce richer graphics than the other platform. Phones want to be easier to use, offer a unique eco system, have unique ways for interaction and so on.

It is never going to be a game purely about the amount of memory, speed of microprocessor and number of extension ports.

Cross platform toolkits like Swing, Qt and HTML5 will always have to play catchup to the native toolkits. In the software managers dream HTML5 is just about to catch up with the native kits. Just you wait. In short time all she need HTML5 to present users with the same experience as the native kids. Of course this is all wishful thinking. They assume a static world were each platform stays still why cross platform tools rapidly advance. This is not the case. Neither Qt nor Swing can provide all the bells and whistles of the native toolkits. They never have. Each time they caught up new native functionality was added.

Just as it has for decades cross platform and native apps will continue to exist side by side. One side is not going to kill off the other. It is simple really. We live in a market economy. As soon as someone makes some great application in a cross platform toolkit be it Qt or HTML5, there are going to be someone who makes the same app in Cocoa, win32 or whatever. That app will run faster, have tighter integration with the host OS, offer nice UI elements that don’t exist in the cross platform toolkits. Users are going to buy this app because to them it is better they don’t care that it is not how IT wants it to be.

You might ask what more can native kits offer? Computers are already fast enough to run anything you want to run through HTML5. Before the iPhone came out they probably said the same thing. But suddenly your UIs had to be fluid, animated and highly interactive. By the time phones are fast enough and HTML has gotten enough features to do what the first iPhone did, there will be something new. And then it is the catchup game all over again.