I just read a post on LifeHacker, the “9 must-have features” from Google’s recently announced operating system, I think what I’d like to see is greatly different from what they would like to see.
No native apps:
I don’t think there should be any native apps for the Chrome OS for many reasons including the Gibsonian implication (security implications), “cruft” – the buildup of mess on the computer, and the lack of portability of that application code. I could argue this point more, but I’ve said it: I would hope that Google include Adobe AIR, Silverlight, Quicktime, and Flash to dampen the eventual anti-trust lawsuit.
Other than what I’ve stated above, the Chrome browser, which can run crafted web pages very well, is a must.
(In lieu of a formal API I think it would be much more wise to allow (at the web application developer’s permission) the use to install the components of a website into a web server/host. This is more discussed in the next section.)
An application host:
Here’s the problem; if Google is going to (at least) focus on web applications, what happens if the internet goes out? What happens if you’re going on a flight without wifi? That’s why I would love to see a method of installing core components of web sites/apps that allow you to continue to use them while offline. But I’m talking more than just caching the images or scripts or CSS of a web page, I’m talking about caching all of a website and the databases applicable to you.
Let’s put this into practical terms: take a example of Google Docs. Google already has the PHP, Perl, or other scripts running on their server that when combined with the appropriate database and AJAX becomes a word processor, the problem is that the user always needs to have the outputs of those scripts and databases and an AJAX connection to the server to use the features of the application and when on a slower data connection has an overall poor experience (….loading….) overall. However if Google were to package their environment and scripts into a bundle, have the local operating system run the environment (virtual machine?) and use some code to allow the user to use the local application all of the time and synchronize the local and remote databases when available and upgrade the local environment when the remote changes. The final piece to this puzzle would be the push notification system that the applications would use to connect to their server to collect any immediate changes, such as new posts on Friendfeed or Facebook. As far as the user will know, when they use Chrome OS they could (if developers do this) use a web application offline AND notice that whenever they are on-or-offline the applications are much speedier.
The problem with this feature would always be the net book problem, the lack of local resources. This feature would be great for net books, but they don’t have the hard disk space or the memory or the cpu power to run a virtual machine. This is a flawed feature—mainly because if each web app needs an environment back end then suddenly the amount of memory Chrome needs to render web pages seems miniscule, especially if it’s a power user with many applications open at once. Note that Google is smart and if they take the approach I hope they do, will do it elegantly.
An interesting windowing system:
if Google wants this to be a successful platform they need to make a desktop system that does what current desktop do for applications and files for the web. What we see now as a computer with a file system full of files, a desktop with icons to files and applications, a start-menu or dock of files and applications need to be transposed into web analogies. For example we have folders of documents—who says those documents can’t be aliases to a document inside Google Docs?
What about the windows on my screen have to be ‘applications’ in the classic sense, what if the applications on my screen were well rendered web pages with an excessive reliance on AJAX, CSS, and Javascript instead of platform specific interface components. The trick for Google would be to build their whole windowing/display system to use web applications—or at least applications that live on the web. This could be as easily implemented as the Apple web apps were, with tools like an analog to WP-Touch plugin for WordPress, given that this only changes the presented columns into a much smaller width, used a different CSS file, and in the CSS file used some animation code to make pages ‘slide’. The website would appear the same, with only minor cosmetic differences to make them feel like an immersive program, not a website. This would also mean that you can’t simple use a program inside the Chrome browser window, there would need to be an API to make right click options, the window bar, the windowing buttons (close, minimize, etc…), and for making file-right-click actions (eg. ‘open this file with: Facebook Photos’).
There would be a lot of work that Google would have to do, a lot of which involves redesigning the desktop metaphor we’ve been using since the eighties.
Development tools:
Just like Apple makes their developer tools widely available with Mac OS X (it’s included on the CD), Google should build a development environment that would give the everyday user the ability to build their own application. I would hope that this development environment would have all of the ease of Microsft’s Visual Basic development environment and all of the power and ubiquity of Apple’s. By which I mean the `drag’n'drop` interface layout with an automatic linking of code and GUI while having the amazing code libraries that resemble OS X’s core services. The key is that they need to widely distribute their own set of tools that will be built to optimize for the webkit rendering engine.
System Reset:
If you’ve used a Tivo you know about the factory reset button which reinstalls the base operating system and deletes all of the old configuration files and data. This is the biggest problem with Windows, that the process of reinstalling your operating system is vastly complicated and not very consumer friendly (the whole activation code) and Linux (in general) requires you have a disc available to reinstall. This is a bigger problem for netbooks because they don’t have optical drives and the alternative of thumb-drives isn’t 100a% friendly either, it’s another component for them to lose in their closet, the idea of the ‘reset’ button makes consumers more likely to do this frequently, especially if any user files that would be deleted would be moved into a special folder that will be cleared after a set period of time after the reset to alleviate the issue of backing up. Drivers could be left in their location as an option.

