Login   Register  
Icontem

Why Google Chrome OS matters for Web application developers - JS Classes blog

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Blog JS Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog Why Google Chrome OS ...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (1)  
<< Previous: AJAX 2, Microsoft Sun...>> Next: Chrome OS, WebOS 2, j...

Author: Manuel Lemos

Posted on:

Categories: JavaScript opinions

A lot has been said about what Google Chrome OS is or will be, but while Google does not clarify many of the doubts that have been raised by the developers and users in general, many wonder if it will succeed based on supposed limitations that in reality Chrome OS does not have.

This article aims to clarify many of those doubts about Chrome OS really is and how alleged limitations will be overcome.




Contents

Introduction

What is Google Chrome OS?

Clearing your doubts about Chrome OS

Obtaining Chrome OS

What is Chrome OS like

Using Chrome OS apps

Developing Web apps

Selling Web apps

Conclusions

So why does Chrome OS matters?

Other questions


Introduction

It has been a while since Google started pushing the idea of Chrome OS, an operating system that would use a browser, Google Chrome, as user interface, being its applications Web based.

The idea raised many doubts among the community of computer users, software developers and technology reporters on whether being Web based is convenient or feasible at all.

This article is mostly based in my opinion and some facts that I have been gathering. Those facts seem to not be well understood by many other people, probably because Google is not making them very clear. Let me try to clarify.

What is Google Chrome OS?

The main issue that does not seem to be clear is what exactly Google Chrome OS is?

Last October I attended Google Developer Day 2010 here in São Paulo, Brazil. This is a large event that Google organizes every year since 2007.

The main event on which Google shows their technologies for the developers community is Google I/O. But since Google I/O only takes place in San Francisco, Google also organizes smaller technology show case events in several other cities in the world. These smaller events are called Google Developer Day or DevFest depending on the country on which they take place.

Google Developer Day is a free event, so it is very crowded. You can apply to attend the event but not everybody is approved due to the lack of space. This year only about 1,000 of the 6,000 that applied were approved  to attend Google Developer Day São Paulo 2010. Fortunately I have attended all the 4 editions that happened since 2007.

Previously Google announced they would launch Google Chrome OS in October 2010. Since I did not see any Chrome OS announcement I was wondering if the project was delayed or "forgotten".

Google Developer Day is a great event packed with useful information for Web developers in general. The only gripe that I have is that it is not really a community event, but mostly an event on which only Google pushes their messages to developers.

I am not really complaining but rather giving my opinion that I think it would be better if Google allowed outside developers from the community to propose themselves to give presentations and show their Google based applications, libraries and tools. The truth is that most of the information that Google presents in these events is already available on the Web. So there is really not so much new information to learn from these events.

On the upside, one good thing about these events is that you can talk with Google engineers that attend the event to give a few presentations. Fortunately this time I had the opportunity to talk with Tim Bray. For those that are not familiar, Tim Bray is one of the co-inventors of XML. He is now working at Google because he is a big fan of the Android platform and he wanted to take part of Android development.

Besides other Android related questions, I have asked Tim: "What about Chrome OS? We did not see any presentations about it here. Wasn't it supposed to be launched in October?" And Tim answered something like "Oh, Chrome OS will be huge. Chrome OS is Chrome."

Then things started making sense. Of course, silly me, Chrome OS is mainly the Chrome browser. What else did we expect? We already love and use Chrome for its speed. Many of us even switched from Firefox to Chrome despite Chrome still misses some of the nicest extensions that Firefox has. We are already aware of what Google Chrome does, but can it really work as user interface of a whole operating system?

There were several sessions on Google Developer Day about the latest and greatest features of Google Chrome. I only attended one of the sessions and missed the others because before I talked with Tim Bray I was not connecting the dots between Google Chrome and Chrome OS. Many of the features that were announced in those sessions were specifically aimed to make Chrome the Chrome OS user interface.

Fortunately, the videos of all sessions were made available recently. Here are those that are related with Chrome and Web applications.

HTML 5: Building for a Faster Web - The latest developments of HTML 5 to make it address advanced needs of Web applications, as well performance enhancements in Chrome


So What's A Web App? Introduction to the Chrome Web Store - Introduction on how to package and distribute Web apps using Chrome Web Store

OpenID-based single sign-on and OAuth data access - How to authenticate users that have accounts in services supporting OpenID and OAuth protocols like: Google, Yahoo, Facebook, Twitter, LinkedIn, etc..

Clearing your doubts about Chrome OS

Now that you have an idea about what is Chrome OS and how it is tied to the Chrome browser, you may still have doubts on whether it makes sense and how you can take advantage of its opportunities.

Let me try to clear your doubts answering a series of eventual questions that you may have. I have separated the questions in groups.

Obtaining Chrome OS

Where can we find Chrome OS to try it?

Chrome OS is based on the the Open Source project Chromium OS. You can download and build its source. There are some ready to use installation ISO images around that you can use to burn a CD or install in an USB pen drive, but since none of those images is provided by Google or any trusted partner I am not recommended you to use them.

When will Chrome OS be available?

Google expects that the first netbooks with Chrome OS to ship during 2011. They will be sold by partner companies that are well known in the netbooks market.

Meanwhile, Google already announced their own first netbook with Chrome OS named CR-48. Officially they are announcing that they can send you a CR-48 netbook with Chrome OS for free to anybody that is willing to participate in their pilot program. I do not know anybody that as got one apart from some well known tech reporters and bloggers.

What is Chrome OS like

So Chrome OS is just the Chrome browser?

In reality the official Chrome OS release is basically a Linux distribution that automatically starts the Chrome browser.

Chrome OS netbooks distributed by partners are also expected to come with customized firmware that contains special code to perform several security checks before booting in order to verify whether the system was not compromised by malware.

Why not using Android instead of Chrome OS?

Android has been another successful operating system but it was meant for a different type of devices. Android devices typically have low resources like a low power chips, slower CPU (typically ARM-like), much less RAM (typically 256MB), small screens, smaller applications, etc.. so those devices has greater autonomy and battery life.

Chrome OS requires a full blown Chrome browser. Android Web browsers support some HTML 5 API features but in general are very limited. If you tried for instance Google Docs on an Android Web browser, you will notice that its editing capabilities are not as powerful as in the desktop computer browser version.

This is not a problem specific to Android but rather of most mobile operating systems. They were optimized to run on limited resource devices, such as mobile phones and tablets. As these mobile devices evolve, it will be possible to have more complex browsers that take more memory and CPU, and so support a more complete set of HTML 5 API features.

Why Google videos show Chrome OS booting much faster than a regular Linux distribution?

Some of the videos do not really show it doing a cold boot but rather starting the netbook from suspension or hibernation state. This means that the warm boot process consists just of reloading the netbook RAM with the previously booted OS.

Other than that the demonstration videos use machines that have SSD (Solid State Drives). Those drives are just Flash memory chips that do not loose the stored data when they are turned off. Therefore SSDs are much faster to access then traditional hard drives with rotating disks.

However, SSDs are still much more expensive than HDs. That is probably the reason why you may still be using HDs instead of SSD in your computer.

Using Chrome OS apps

Do I have to use Chrome OS Linux distribution to try Chrome OS?

In reality no because Chrome OS apps are really Web apps meant to run in Chrome browser. Some Web apps may not even require Chrome, as long as your browser supports all the HTML 5 APIs that the apps need.

Do I have to be connected to the Internet to use those Web apps?

It depends on the purpose of the app. If the app is intended to store or retrieve information from the Web, obviously you need to be connected to the Internet when the data transfer occurs.

But for app installation purposes you just need to be connected to the Web when the initial installation happens. After that the application may be remain stored in your netbook and never need to be reloaded from the Web again.

Chrome, like other HTML 5 compliant browsers supports the so called application manifest files. These are text files that list all files that an app needs. Those files are loaded from the Web when the application is installed, even if some of the files are not necessary immediately. Therefore you will not need Internet connectivity to load the application again next time you use it.

But if an app that I use loads or saves data from the Web, do I loose my work if the Internet connection drops?

No, unless the app is not well written. HTML 5 provides several means to support the so called offline work. First the Web app can be notified when your netbook looses connectivity. When that happens, the app may save your work changes to the local drive instead of sending it to the Web. When the Internet connectivity is restored, it may continue saving your work data to the Web.

By default Web each installed app has 5MB of dedicated storage in the local drive. That is sufficient for most Web apps to save temporary or permanent data.

What if my work requires more than 5MB of space to be saved?

The Chrome browser (and probably others) may let apps use an unlimited amount of local storage if the user authorizes it. The Web app manifest files may specify that requirement, so the user is prompted to allow the app to use unlimited local storage space during the the app installation.

Does that mean an app can also write application to the local drive files?

Yes, but you may need a recent version of the Chrome browser to do it.

Can Web apps also access devices like USB drives, Webcam, microphone, GPS, accelerometer, etc..?

Yes, there are some APIs that make possible accessing those devices. Some APIs are still being finalized, others still need to be implemented in the latest browser versions, but it is all planned to be made available somehow for the control of the Web apps.

Will malicious apps be able to steal local storage data from each other and send to malicious sites on the Web?

No, each app has their own local storage spaces and they cannot see each other files.

Can I run non-Web apps on Chrome OS?

Apparently yes. Since Chrome OS is actually a Linux distribution, I suppose you would be able to run any installed Linux apps outside the browser.

Ideally that would not be necessary. Once the capabilities and of the HTML 5 and Web app APIs become more and more powerful, it will be possible to do in a Web app practically everything you do in a native app.

Still somebody will have to develop Web apps equivalent to the native apps you need. That will take time but I expect that to be a reality in a matter of years.

Where can I find interesting Web apps?

Google created the Chrome Web Store to make it easier for the developers to distribute their own Web apps and for users to find them. There you can find thousands of interesting apps.

Do I need to use Chrome browser to use those apps?

Many of the applications are not tied to any Chrome browser specific feature.

But why when I go to Chrome Web store with another browser and it says it requires Chrome?

In reality some Web apps are Chrome browser extensions. In theory it is possible that other browsers may load Chrome extensions, but we have yet to see if other browsers vendors will play along and make their browsers compatible.

Anyway, many apps are hosted in their own sites. If you go directly to those sites you do not need to go to the Chrome Web Store to install those hosted apps.

Is it safe to download Web apps from Chrome Web Store?

In general yes but keep in mind that it is up to you the user to authorize or not each app that wants to perform certain operations that may compromise your computer security and data privacy. For apps that need to have special access to sensitive information, like your computer location or unlimited local storage space, the browser first asks you if you allow the application to do it.

You are also able to let your apps to access local files but usually that is in result of an action that the user performs intentionally, like for instance selecting files for upload or dragging and dropping files from the desktop.

So, in this sense Web apps are considered safe to use.

Can I update the version of my apps in Chrome Web Store?

Yes, usually application updates occur smoothly right after the developer pushes a newer version to the Chrome Web Store.

Developing Web apps

Web apps are mostly written in JavaScript. Do I have to use JavaScript to develop my Web apps?

Nowadays you should not need to use any other language besides JavaScript, but Web apps can be made of Java or Flash (ActionScript) applets.

Other than that Chrome supports Native client applications in your browser. These are C++ libraries and tools for writing portable Web applications that run on x86/ARM, 32/64 bit, Linux, Mac or Windows platforms. But you will rarely have the need to resort to this solution to develop your Web apps.

Isn't JavaScript a language that is too slow?

Since Google introduced the V8 engine in the Chrome browser JavaScript is compiled into native machine code before being executed. The performance improvements have been dramatic. That is why Google Chrome is so fast. Other browser vendors have followed Google path and implemented their own boosted JavaScript engines.

Selling Web apps

Can I make money with my Web apps?

Sure, please do. Google will make it easier to charge for your applications if you distribute them via Chrome Web Store, but you are not even required to use Google infrastructure to charge your app customers.

Do I have to pay anything to sell my apps in Chrome Web store?

Before you publish your first app, you need to pay a USD $5 signup fee.

Does Google take a cut for selling my apps?

Yes, if you choose to have Google processing your app sales, there are some transaction fees to be deducted from your sales.

Is there a process through which I need to submit my apps for approval?

No.

Conclusions

So why does Chrome OS matters?

As you may have understood very well by now, the most important part of Chrome OS is Chrome. Chrome OS netbooks will probably be interesting for people that spend most of their time using the Web and do not need any other type of computer with a specific operating system.

Users with specific system needs will still be able to use Chrome OS apps because those are mainly Web apps that run on the Chrome browser. So they just need the Chrome browser in any other operating system.

Therefore, what really matters about Chrome OS is that with the evolution of HTML 5 and other Web standards, now Web apps can do more and can overcome limitations of the past Web applications. It is up to you to study those standards to take advantage of them in your present future Web apps.

Other questions

I tried to answer the most common questions posed by people with doubts about Chrome OS. If I did not answer all the questions you have, feel free to post a comment with other questions.

To answer those questions I have studied a lot of the available documentation and watched many videos related with the subject. Still I admit that I may have misunderstood certain explanations. If you feel that I may have given incorrect explanations, also feel free to post a comment and correct me. If that is the case I will gladly update this article with more accurate information for the benefit of all that are interested in the subject.


You need to be a registered user or login to post a comment

Login Immediately with your account on:

Facebook ConnectGmail or other Google Account
Hotmail or Microsoft Windows LiveStackOverflow
GitHubYahoo


Comments:

No comments were submitted yet.


Trackbacks:

1. Why Google Chrome OS Matters (2011-01-25 07:14)
Google Chrome, Chrome OS, Chromium… what is it, why is it important? How does Chrome keep gaining browser market share?...


<< Previous: AJAX 2, Microsoft Sun...>> Next: Chrome OS, WebOS 2, j...

  Blog JS Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog Why Google Chrome OS ...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (1)