Berislav Lopac thinks that the browser is going away, and native applications connected to web-server backends are the future. I feel the opposite. I think native applications are headed the way of the cli. The browser is the great equalizer. Think about it like this: what barriers prevent you changing operating systems today? What barriers prevented you from changing operating systems 10 years ago? Our daily computing lives are dominated more and more by web-based applications. We can use these applications anywhere. It’s one of the primary reasons mobile and tablet devices have finally gained traction.
Not too long ago, our mobility between operating systems didn’t matter much. No one really cared if they could easily switch from Windows to Linux, because switching didn’t achieve a specific goal that they were interested in. That is, the tasks they could accomplish were too similar. The introduction of mobile and tablet devices has created a new incentive for operating system mobility. Users want to be untied from their desks, and they want to bring their experience with them.
The browser is already an application platform. It is its own execution environment. Ironically, Microsoft’s early vision of the web browser was that it would be a platform to which native-like applications could be pushed over the wire. ActiveX and proprietary browser features were an attempt to leverage existing developer toolsets in a browser environment. This failed (for a large number of reasons), but the persistence of IE6 in corporate environments is a testament to just how close they were to succeeding. As browser standards advance, we’ll see a surge in the development of fully in-browser frameworks that use design patterns like MVC. I don’t mean V and C in the browser and model on the server. I mean M, V, and C within a browser, where the model reaches out (sometimes) to a server for data-sync or specific execution. Apple’s guidelines for iPhone web apps are a great example. Their entire framework is built atop an open-source browser, which is seeing widespread adoption in the mobile and tablet space.
The balance between client and server based processing runs like the tides. Not every application will become a web application, but the number and broad importance of native applications will diminish. Web standards will continue to advance, supporting more native-like applications in the web browser. Projects like Fluid will allow users and developers to package browser-based apps in launchable containers on the desktop, while mobile devices will continue with the existing trend of abstracting away the difference between mobile and native apps (see iOS and Android handling of web app shortcuts on homescreens). Browser application frameworks like Sproutcore will put new tools in the hands of developers that advance the way we think and build “web apps”.
The future of the web browser is bright.