Showing posts with label chromeos. Show all posts
Showing posts with label chromeos. Show all posts

Monday, November 9, 2015

The good and the bad of a Chrome OS/Android merge

Recently there have been reports of Google planning to merge Chrome OS and Android. I've been a Chrome OS user for 3 years (got a Pixel at Google I/O and have been loving it) and an Android user for 5 years. So I feel like I understand both operating systems very well.

My hope is that Google will take the best of both worlds and make something better. So in order to help facilitate that, here's my high level best/worst lists for each.

[update: 12/19/2015]: Russian translation available here thanks to Vlad!

What Chrome OS Does Well


Simplicity: Chrome OS is simple and intuitive. I would feel absolutely comfortable giving a chromebook to my mom or dad and be confident that they could surf the web and check their email without any problems.

Multiple Users: At first I didn't like that you had to log in to a Chromebook with a GMail account. But after using the Pixel for 3 years I think it makes things easier. My wife and I both share the Pixel and we do so with zero hassle. Logging in and out is fast and intuitive and there isn't an extra username/password that you have to remember. When friends come over and want to surf the web they can pick up the Pixel and start using it right away using their GMail account (and it seems almost everyone has one).

The Web: It should go without saying (but it won't) that an OS built on top of a browser should be good at surfing the web. And it is. Web based email works great. Streaming media like Netflix, Amazon Instant Video, and etc work great. Chrome OS just works when it comes to the web.

SSH: Surprisingly, Chrome OS's Secure Shell program works great and supports key based authentication. This makes using Chrome OS to work on servers simple and efficient.

Native Development Support: If you're a developer you can get shell access with crosh and use crouton to create a chroot to another flavor of Linux (like Ubuntu). Once you have a chroot setup you'll have access to the full suite of developer tools that Linux has to offer.

What Android Does Well


Niche Apps: I've come to rely on apps like KeePass, Owncloud, and Baby Connect in my day to day life. These apps go with me wherever I go and give me instant access to important information. Android is a very friendly environment for niche apps.

Mobile First Experiences: Instagram, Maps and Navigation (disclaimer, I work at Amazon on Maps), streaming media (these have web counterparts but they're lesser experiences than the mobile apps IMO because they're cluttered with display advertising), and a whole plethora of other apps that are built first for mobile and second for the web.

Games: While I'm not a big gamer, Android does games well. Games like Angry Birds, Fruit Ninja, Plants vs Zombies, Cut the Rope, Solitaire, Sudoku, and etc all run great and are fun on Android.

Contacts, Calendar, and Email: The native apps for contacts, email, and calendar work great, sync great, and are easy to use.

Switch to developer mode: Developer mode isn't turned on by default in Android. But it's really easy to enable. Just tap on the system version several times and you've unlocked the power of being a developer.

What Chrome OS Doesn't Do Well


Apps: Chrome is pretty horrible for apps. The HTML5 based apps I've used are clunky and not very functional.

Switch to developer mode: Switching to developer mode on Chrome OS is awful. It requires you to wipe your machine when switching in and out of developer mode. While booting up in developer mode you're presented with a terrible screen telling you that OS Verification is off. If you hit space bar you wipe the machine. Switching in and out of developer mode just isn't easy.

What Android Doesn't Do Well


The Web: The biggest concern I have with Android is that web surfing still sucks. So many sites still use flash or heavy javascript and just don't run well on Android. Web pages aren't optimized for small screens still (and probably won't ever really be). The web also wasn't made for touching but Android's primary input mechanism is touch.

Monday, November 4, 2013

I finally understand the why of ChromeOS

When I attended Google I/O in May 2013 I had no expectation that I'd be receiving a Chromebook Pixel. I had thoughts (hopes) that they'd announce Android Key-lime Pie (now known to be called Kit-Kat) with a new tablet.  My original Samsung Galaxy Tab 10.1 had been trucking along well since July of 2011 with heavy use. I commute 1 - 1.5 hours each way on the bus to work and I use that time to mostly read Kindle books but also to catch up on blogs, email, and the internet as a whole. It's pretty safe to say that I used my Galaxy Tab 10.1 3 - 5 hours a day every day.

I feel a little privileged saying I expected Google to give away free tablets, and I probably was being a little privileged. But their history had been to give away free phones/tablets at their events (especially Google I/O). Much to my disappointment Google didn't announce Android Kit-Kat and didn't announce a new tablet.  But much to my surprise they did announce that they were giving away Chromebook Pixel's to everyone in attendance.

I was super curious about this because, frankly, I've been really skeptical of Chrome OS since it was first announced. I just couldn't image a world in which Chrome OS and Android could live in the same ecosystem.  At the time I couldn't understand why Google wasn't putting more of an effort into bringing Android to more traditional devices instead of creating a completely new operation system.

Android vs. Chrome OS

After having my Pixel for 6 months I believe I finally understand why Google created Chrome OS as opposed to trying to bring Android to more traditional devices. This realization only came after using my Pixel as my everyday (home) laptop for the last 6 months. The problems that Android is trying to solve are very different from the problems that need to be solved on more traditional, less transient devices.

In my opinion, mobile devices are trying to (primarily) solve these problems:
  • Hard-line to the rest of the world (phone, email, text)
  • Critical content at a glance (calendar, contacts, events, places, transportation, activities).
  • Activity based content with a focus on location and movement (maps, running/biking/etc)
  • Bite-sized consumable content (Facebook, Twitter, Pinterest, etc)
  • Content consumable in the in-between time (games, apps, news, weather, etc). 
  • Media consumption (music, movies, books, etc) typically in a short form. 

In my opinion, traditional devices are trying to (primarily) solve these problems:
  • Communication (email, instant message)
  • Research and Planning
  • Work (documents, spreadsheets, presentations, blogging/writing, development, shared content access, etc)
  • Media consumption (music, movies, books, etc) typically in long form.
There are overlaps between the two but for the most part traditional devices tend to be the canonical source of your data whereas mobile devices tend to be a transient source of your data.  For instance, your traditional device may have all your email on it whereas your mobile device may have only your recent email on it.  Your traditional device may have all your music and movies whereas your mobile device may have a subset of them.

Once I started to look at Chrome OS as a replacement for more traditional devices like desktops/laptops and less of a replacement for your mobile device Chrome OS started to make a lot more sense. Chrome OS actually seems more like Google's attempt to redefine traditional devices. The big change not being in how you use the device but in how the device interacts with your content.

Currently traditional devices are the place where you create, store, and consume your content. Your mobile device tends to be a place where your content is transiently stored, occasionally created, and mostly consumed.  This doesn't lend well to an environment where we're constantly switching between our traditional device and our mobile device. We're being forced to be aware of the context switch and in some cases, take active action before and after the context switch. Currently the hand-off between traditional devices and mobile is clunky and awkward.

Google, Apple, Microsoft, and others have all been making strides to make it easier to store your content outside of your traditional device in The Cloud (I still cringe saying that). But that's only part of the solution. It's a solution that's been grafted into an existing ecosystem that wasn't designed to solve that problem.  So it sticks out and forces you to at least be partially aware of it's existence.  Chrome and Firefox are making good strides to blur the lines with their bookmark and tab syncing across devices but again that's only a partial solution.

The real solution must involve changing the culture around traditional devices. It must involve freeing the user from thoughts or knowledge of where their content is and on what devices that content is available.  And that culture change needs to happen on traditional devices first.

I think that's the why of Chrome OS.

Are they there yet?  I think that depends on who you are. If your the average consumer who blogs, surfs the web, possibly uses Netflix, Rdio, Hulu, Office/Google Docs, Facebook, LinkedIn, Twitter, and etc then yes, I think you'd be able to replace your traditional device with a Chromebook.

If you're a power user, a developer, or someone that relies on open standards then no Chrome OS won't work out of the box for you.  I store a lot of my files on a shared WebDav drive encrypted using open-ssl. I use KeePass to store my important account info. There's no elegant solution to getting those three things working out of the box on Chrome OS.  Thankfully David Schneider created crouton which is a Chromium centered set of scripts which allow you to create chroots. With crouton I can get a full Ubuntu Linux chroot running on my Chromebook Pixel.  What that means is that I can write software, access my WebDav/Encrypted/KeePass files, and do everything I'm used to doing on a traditional device.  But there are two critical failures with this.  First is that I have to keep my Chromebook in developer mode which sucks. Second, and most importantly, I have to go back to the traditional paradigm of interacting with a traditional device.  To me that defeats the purpose of Chrome OS and turns it into just another pretty User Experience.

Only time will tell if Google can save this problem for both the average consumer and the techie. I do think it's possible to solve if you really understand the problem.