The next big battle in the world of computing will pit applications that live on the Web against the kind that live on a computer.
For several reasons, it would be beneficial if Web apps were to win. One reason is that the Web has a much broader reach than any other platform: Web browsers run on all kinds of devices, from mobile phones and tablets to game consoles and laptop computers. Another is that Web languages are developed by standards organizations like the World Wide Web Consortium (W3C) rather than being controlled by individual corporations.
However, conventional applications may retain the edge in performance. That’s because they are built from “native code” that runs closer to a device’s hardware. It can, at least in theory, run more optimally than Web code that needs to be interpreted by extra layers of software before hardware can act. For the user, that can translate into the difference between a smooth animation and a stuttering one. Besides, mobile devices have limited memory, battery power, and numbers of processor cycles.
Nevertheless, I think that Web apps will soon be able to compete with native apps, for two reasons.
The first has to do with the use of JavaScript, a Web programming language that provides fluid, dynamic user interfaces. The speed at which a Web browser’s JavaScript engine could translate this code was at one time a bottleneck constraining the performance of Web applications, but browser makers are now competing fiercely to make better JavaScript engines. Modern engines like the ones inside Opera, Chrome, Safari, and Mozilla Firefox have been optimized to the point that JavaScript no longer holds back most applications (see “The Slow-Motion Internet”).
Second, up-to-date Web languages such as HTML5 and CSS3 will handle many computing-intensive tasks that have been difficult for Web apps. For example, HTML5 makes it easy to integrate video into these applications. Current Web browsers ship with video codecs, and decoding is increasingly supported by hardware. Animations provide another example. In the past, devices fast and slow were forced to play every frame of an animation, whether or not they were capable of doing so smoothly. Now a designer can use CSS3 to define start and end points for an animation and leave the Web browser to interpolate the frames in between. A mobile device may show fewer frames than a desktop computer, but both will run the animation as smoothly as they can.
If such advances can allow Web browsers to offer the same functionality and performance as past proprietary platforms, the Web will win out. Native apps will become a footnote in the history of computing.
Håkon Wium Lie is chief technology officer of Opera Software and was a member of the TR100 in 1999.