Habits die hard with me, especially when a certain amount of nostalgia is involved, so I’m still using Firefox as my primary browser. However, I’m deeply impressed with Chrome, both as a user and as a developer, and have been meaning to make the switch for a while.
I’m feeling the a sense of urgency to do so now, if only to wrap my mind around what is occuring with Chrome OS and Chrome Web Store. Both of these projects raise a lot of questions, and cause a lot of confusion, because they represent some fundamental shifts in how we experience the web.
Chrome OS is the most nebulous of these projects. What does it mean for the browser blur the lines into OS and window manager? How does it relate to Android? Even Google seems a bit hazy with its answers to these questions, so I’m willing leaving them open until the air clears.
Chrome Web Store is a reality today, however, so I’ve been trying to understand what impact it may have. What I’m most struck by the tension between the web and apps.
Apple, with iOS and the App Store, offers a platform that reverses the trend in some ways. Content often remains in the cloud, but applications are installed locally and interaction moves to the device. Development, using Objective-C and Cocoa frameworks, follows a more traditional approach from the desktop era, but carried forward into the mobile future.
I think much of this tension is created by the use of technologies with such traditionally different uses. Desktop development has always been application-centric, whereas web development has historically been document-centric. HTML5, continuing the trend started by Ajax, brings a full-fledged application framework to the browser.
Yet, in many cases, we are still struggling cleanly categorize these technologies based on past notions. For example, read this explanation Google offers when defining the concept of apps in the Chrome Web Store documentation:
An installable web app can be a normal website with a bit of extra metadata; this type of app is called a hosted app. Alternatively, an installable web app can bundle all its content into an archive that users download when they install the app; this is a packaged app. Both hosted and packaged apps have icons in Chrome’s New Tab page, and most users shouldn’t be able to tell the difference between them without looking at the address bar.
Note the need to explicitly define the difference between a local (packaged) app and a remote (hosted) app.
The nature of the web is rapidly changing. Constant connectivity means we, as developers, get to shift content storage and data processing between the server and client in any number of ways. A broad continuum exists that will defy efforts at categorization. Instead, we should strive to understand the nuances of each approach and balance them according to application requirements.
What needs to happen is this: folks like Netflix need to build XBox and Roku-like apps for Chrome and Chrome OS. This will allow users to browse, select, and watch movies from their browsers.